7.5. 権限借用
内部トークンと外部トークン交換の場合、クライアントは、ユーザーに代わって別のユーザーになりすますように要求できます。たとえば、サポートエンジニアが問題をデバッグできるように、ユーザーになりすます必要のある管理アプリケーションがある場合などです。
7.5.1. 交換のパーミッションの付与
サブジェクトトークンが表すユーザーには、他のユーザーになりすますためのパーミッションが必要です。このパーミッションを有効にする方法は、Server Administration Guide を参照してください。これは、ロールまたは粒度の細かい管理者権限を介して実行できます。
7.5.2. リクエストの作成
requested_subject
パラメーターを追加で指定しない限り、他の章の説明どおりに要求を行います。このパラメーターの値は、ユーザー名またはユーザー ID である必要があります。
curl -X POST \ -d "client_id=starting-client" \ -d "client_secret=the client secret" \ --data-urlencode "grant_type=urn:ietf:params:oauth:grant-type:token-exchange" \ -d "subject_token=...." \ --data-urlencode "requested_token_type=urn:ietf:params:oauth:token-type:access_token" \ -d "audience=target-client" \ -d "requested_subject=wburke" \ http://localhost:8080/auth/realms/myrealm/protocol/openid-connect/token