7.5. ダイレクトの Naked Impersonation
subject_token を指定せずに内部トークン交換要求を行うことができます。これは、クライアントがレルム内の任意のユーザーになりすますことができるため、クライアントに多くの信頼を置くことから、ダイレクトの Naked Impersonation と呼ばれます。交換するサブジェクトトークンを取得できないアプリケーションをブリッジするために、これが必要になる場合があります。たとえば、LDAP と直接ログインを実行するレガシーアプリケーションを統合している場合があります。この場合、レガシーアプリケーションはユーザー自身を認証できますが、トークンを取得することはできません。
クライアントにダイレクトの Naked Impersonation を有効にすることは非常に危険です。クライアントの認証情報が盗まれた場合、そのクライアントは、システム内の任意のユーザーになりすますことができます。
7.5.1. Exchange のパーミッションの付与
audience パラメーターを指定すると、呼び出し元のクライアントにはクライアントへの交換パーミッションが必要です。これを設定する方法については、この章の前半で説明しています。
さらに、呼び出し元のクライアントには、ユーザーになりすますためのアクセス許可を付与する必要があります。管理コンソールで、Users 画面に移動し、Permissions タブをクリックします。
ユーザー権限
Permissions Enabled スイッチを true に切り替えます。
ID プロバイダーパーミッション
ページに 偽装 リンクが表示されるはずです。それをクリックして、パーミッションの定義を開始します。このページが作成されます。
ユーザーのなりすましパーミッションの設定
このパーミッションのポリシーを定義する必要があります。Authorization リンクをクリックし、Policies タブに移動し、Client ポリシーを作成します。
クライアントポリシーの作成
ここでは、トークン交換を要求する認証されたクライアントである、開始クライアントを入力します。このポリシーを作成したら、ユーザーの 偽装 パーミッションに戻り、定義したクライアントポリシーを追加します。
クライアントポリシーの適用
クライアントには、ユーザーの権限を借用できるパーミッションがあります。これを正しく行わないと、このタイプの交換を行おうとすると、403 Forbidden 応答が返されます。
パブリッククライアントは、ダイレクトの Naked Impersonation を行うことはできません。