いくつかの背景:(SPとして作用する)AzureのAD SSOマルチテナントアプリケーション/ AD FSクレームプロバイダーの問題
私の会社は現在、AD FS 2.0通じ、当社のフェデレーションパートナー(IdPの)でSSOを処理します。各パートナーはクレームプロバイダとして設定され、Webアプリケーションに送信される着信クレームを変換するためのルールが作成されます。
クレームを含むトークンはSTSエンドポイント(たとえばhttps://sts.companyname.ca/adfs/ls)に送信され、クレームが変換されてWebアプリケーションのURL(https://companyname.ca/externalsignin.aspx)に送信され、アカウントの検索/作成に先立つOWINミドルウェアによって処理されます。
これは完全に機能します。これで、Azure AD SSOをミックスに統合して、オンボード処理を簡単にすることができます。
私は、Azureで新しいディレクトリを作成して、新しいアプリケーションを作成しています。私はアプリケーションをマルチテナントとしてマークし、返信URLを "https://sts.companyname.ca/adfs/ls"に設定しました。私のサーバー上のAD FS 2.0クライアントでは、「AzureAD」という新しいクレームプロバイダを作成し、Azureコンソールのアプリケーションのエンドポイントセクションからmetadataurlをインポートしました。私たちのテナントからの電子メールでログインをテストすることは完全に働いていました。これがlogin.microsoftonlineのために構築されたログインフォームによるものであったと思われるいくつかの研究の後
:問題は、他のテナントからの組織の電子メールでのテスト、認証が悪い要求メッセージで失敗したときにあります。 com/tenantidの場合はlogin.microsoftonline.com/commonをマルチテナントアプリに使用する必要があります。そこで、https://login.microsoftonline.com/common/federationmetadata/2007-06/federationmetadata.xmlのメタデータを再インポートして更新しました。
他のテナント組織アカウントでログインすると実際に同意を求めることができますが、認証後にsts.companyname.ca/adfs/lsへの投稿は失敗します。その理由は、トークンが "sts.windows .net/0000-000000-000000-0000 "と表示されますが、AD FSのクレームプロバイダはsts.windows.net/{tenantid}プレースホルダによって識別されます。
テンプレート付きエンドポイントを持つ単一のAzureクレームプロバイダー(これはすべて同じ署名証明書を使用しているため、1つの匿名クレームプロバイダーのみを追加することができます)のみでこの作業を行う方法はわかりません。
この障害を克服する助けがあれば幸いです。
ありがとうございました。 Azureの広告B2Bは、それが行く方法かもしれないように見えます。外部ユーザーを招待するプロセスは、最大2000行のCSVファイルのインポートに依存しているようです。これにより、パートナーのテナントに追加されるたびに新しいユーザーを招待して、リソースにアクセスできるようにする必要がありますか?私たちのパートナーは教育委員会であり、一部には10万人以上のユーザーがおり、常に新入生を追加してアクセスする必要があります。 – jeramie
私は、OpenIdConnectAuthenticationをADFSを介してではなく、追加のプロバイダで使用するためのコードをいくつか追加しました。乾杯! – jeramie