
当社では、認証/フェデレーション プロバイダーとして Microsoft Active Directory Federation Services (ADFS) を使用しています。当社では、これを SAML 経由で複数の外部ベンダー、SaaS プロバイダーなどへの ID フェデレーションの実行に使用しています。さらに、OAuth のみをサポートするベンダーもいくつかあるため、ADFS 2016 の OAuth サポートを使用してそれらのベンダーとの統合を構成しました。そのため、必要に応じて SAML アサーションと OAuth アクセス トークンの両方を生成できます。
ここで、ベンダー A (SAML 認証用に構成) がベンダー B (OAuth トークンを要求するように構成) に対して RESTful サービス呼び出しを行う必要がある状況に遭遇しました。ADFS 生成の SAML アサーションを ADFS 生成の OAuth トークンに変換する方法はありますか? 両方の資格情報が ADFS によって生成されることを考えると、ADFS には変換を実行する方法があると思います。SAML アサーションを POST して、OAuth トークンを返すことができるエンドポイントはありますか? ご協力いただければ幸いです。
答え1
ADFS と Oauth についてはお答えできませんが、2 つの異なる Web ベースの SSO システムを統合することに関する経験はお伝えできますので、検討の参考になるかもしれません。
私の状況では、既存の独自の SSO システムを利用するために、Shibboleth IdP (SAML 2.0 を使用した ADFS と同じ役割) を取得したいと考えていました。
私が行ったのは、IdP を「外部」認証を使用するように構成することでした。この場合、独自の SSO システムが外部認証 URL のみを保護するようにしました。そのため、ユーザーがログインしようとすると、外部認証 URL にアクセスし、他の SSO システムを経由して、認証された状態で戻ってきて、外部認証 URL を経由して IdP にアクセスし、セッションを許可します。
これは、実際には 1 つのシステムを別のシステムに「変換」するのではなく、外部認証を使用して 1 つのシステムを別のシステムにアップグレードできることを示しています。
警告: ログアウトはより問題になります。他のシステムのログアウト システムも統合するには、IdP に付属する SLO テンプレートをカスタマイズする必要がありました... ADFS はそれほど柔軟ではありません。
乾杯、キャメロン