はじめに
ASP .net coreで開発したWebアプリをローカルで実行する。
実行したアプリにAzure ADによるSAML認証を実行する。
プログラム
下記のPGに書いてある通りのサンプルプログラムを作成します。
↓ASP .net core web app(MVC)ではなく、ASP .net core web appなので注意!
ただし、appsettings.json
のIdPMetadata
に関してはAzureAD構築後に設定するのでいじらなくてよい。
Azure AD設定
Azure PortalでAzure ADを作成して、Enterprise applications>App applicationsの画面でNew applicationを押下
Create your own application
を押下してアプリケーションを作成する
Set up single sign on
を選択
Basic SAML Configuration
-
Identifier (Entity ID)
アプリを特定可能なIDを入力。
プログラム側のappsetting.jsonのIssuerに対応する。 -
Reply URL (Assertion Consumer Service URL)
ローカルでプログラムをデバッグしてみて、URLを確かめる。
URLに/Auth/AssertionConsumerService
を付与したURLを入力する。
- SAML Certificates
App Federation Metadata Url
のURL(metadata URL)をコピーしてプログラムのappsettings.json
のIdPMetadata
に貼り付ける。
また、appsettings.json
のIssuer
をBasic SAML Configuration>Identifier (Entity ID)と同じにする。
ここまで作成できたら、Azure ADにユーザを追加する。
一旦AzureADのトップ画面に戻って、Usersを選択。
New Userを選択。
AzureAD>Enterprise applications>App applicationsの画面で作成したIdentifier(Entity ID)を選択。
Manage>Users and groups>Add user/group
プログラム動作確認
Azure ADにリダイレクトされる。
↓ここで、Identifier(Entity ID)へのユーザの割当をしていないと、以下のようなエラーがでてくる。
AADSTS50105: Your administrator has configured the application saml_sample_2
('6XXXXXXXXXXXXXXXXXXXXX') to block users unless they are specifically granted ('assigned')
access to the application. The signed in user 'testuser1@XXXXXXXXXXXXXXXXXXXXXXXXXXXX.onmicrosoft.com' is blocked
because they are not a direct member of a group with access,
nor had access directly assigned by an administrator. Please contact your
administrator to assign access to this application.
↓の質問を聞かれたらAsk Laterを選択。
Action Required Your organization requires additional security information.
Follow the prompts to download and set up the Microsoft Authenticator app.
Stay sign inはNoを選択。
結果
↓SAML認証した属性情報をプログラムに読み込みできている。
参考