7.5. ダイレクトの Naked Impersonation

subject_token を指定せずに内部トークン交換要求を行うことができます。これは、クライアントがレルム内の任意のユーザーになりすますことができるため、クライアントに多くの信頼を置くことから、ダイレクトの Naked Impersonation と呼ばれます。交換するサブジェクトトークンを取得できないアプリケーションをブリッジするために、これが必要になる場合があります。たとえば、LDAP と直接ログインを実行するレガシーアプリケーションを統合している場合があります。この場合、レガシーアプリケーションはユーザー自身を認証できますが、トークンを取得することはできません。

警告

クライアントにダイレクトの Naked Impersonation を有効にすることは非常に危険です。クライアントの認証情報が盗まれた場合、そのクライアントは、システム内の任意のユーザーになりすますことができます。

7.5.1. Exchange のパーミッションの付与

audience パラメーターを指定すると、呼び出し元のクライアントにはクライアントへの交換パーミッションが必要です。これを設定する方法については、この章の前半で説明しています。

さらに、呼び出し元のクライアントには、ユーザーになりすますためのアクセス許可を付与する必要があります。管理コンソールで、Users 画面に移動し、Permissions タブをクリックします。

ユーザー権限

exchange users permission unset

Permissions Enabled スイッチを true に切り替えます。

ID プロバイダーパーミッション

exchange users permission set

ページに 偽装 リンクが表示されるはずです。それをクリックして、パーミッションの定義を開始します。このページが作成されます。

ユーザーのなりすましパーミッションの設定

exchange users permission setup

このパーミッションのポリシーを定義する必要があります。Authorization リンクをクリックし、Policies タブに移動し、Client ポリシーを作成します。

クライアントポリシーの作成

exchange users client policy

ここでは、トークン交換を要求する認証されたクライアントである、開始クライアントを入力します。このポリシーを作成したら、ユーザーの 偽装 パーミッションに戻り、定義したクライアントポリシーを追加します。

クライアントポリシーの適用

exchange users apply policy

クライアントには、ユーザーの権限を借用できるパーミッションがあります。これを正しく行わないと、このタイプの交換を行おうとすると、403 Forbidden 応答が返されます。

注記

パブリッククライアントは、ダイレクトの Naked Impersonation を行うことはできません。