目的
Azure API Management で OpenID Connect 認証を設定する方法を確認する

前提
Azure API ManagementでAPIは作成済
作成方法は以下を参照
Azure API Management - SwaggerからのAPIインポート、Functionsとの連携
概要
(Azure AD 設定)
1.アプリケーションを Azure AD に登録
2.クライアントシークレットの作成
3.アプリケーションID URIの追加
4.OpenID Connect メタデータ ドキュメントのエンドポイント確認
6.リダイレクトURIを Azure AD に登録(※開発者ポータル用の設定)
(API Management 設定)
5.OpenID Connect Serverの作成(※開発者ポータル用の設定)
7.APIのセキュリティ設定(※開発者ポータル用の設定)
8.Inbound processing設定
(開発者ポータル)
9.開発者ポータルを使用した動作確認
手順
1.アプリケーションを Azure AD に登録
(1).Azure portalの Azure Active Directoryで、アプリの登録 → + 新規登録を選択

(2).任意のアプリケーション名を入力、その他は変更なしで登録をクリック

2.クライアントシークレットの作成
(1).Azure portalの Azure Active Directoryで、アプリの登録 → 登録したアプリを選択 → 証明書とシークレット → + 新しいクライアントシークレットを選択

(2).任意の説明を入力し追加をクリック、生成された以下**クライアントシークレットの値 [*1]**は後程使用する

3.アプリケーションID URIの追加
(1).Azure portalの Azure Active Directoryで、アプリの登録 → 登録したアプリを選択 → 概要を選択
(2).**アプリケーション (クライアント)ID [*2]**は後程使用する
(3).アプリケーションID URIの追加を選択

4.OpenID Connect メタデータ ドキュメントのエンドポイント確認
(1).Azure portalの Azure Active Directoryで、アプリの登録 → 登録したアプリを選択 → 概要 → エンドポイントを選択
(1).**OpenID Connect メタデータ ドキュメント [*3]**は後程使用する

5.OpenID Connect Serverの作成
※手順9.(4) 開発者ポータルで Authorizationを選択した際に、開発者ポータルがAzure ADからidTokenを取得するための情報設定

(1).Azure portalの API Managementで、OAuth 2.0 + OpenID Connect → OpenID Connect タブ → + 追加を選択
(2).任意の名前を入力
(3).メタデータ エンドポイント URLに**OpenID Connect メタデータ ドキュメント [*3]を入力
(4).クライアント IDにアプリケーション (クライアント)ID [*2]を入力
(5).クライアントシークレットにクライアントシークレットの値 [*1]**を入力
(6).作成をクリック

6.リダイレクトURIを Azure AD に登録
※手順9.(4) 開発者ポータルがAzure ADから idToken取得後にリダイレクトするURIの設定
(1).作成したOpenID Connect Server 設定の許可コード付与フロー [*4],**暗黙的な許可フロー [*5]**は後程使用する

(2).Azure portalの Azure Active Directoryで、アプリの登録 → 登録したアプリを選択 → 概要 → リダイレクト URIを追加するを選択

(4).リダイレクトURIに**許可コード付与フロー [*4]**を入力、IDトークンにチェック、構成をクリック

(5).続けて、URIの追加を選択、**暗黙的な許可フロー [*5]**を入力、保存をクリック

7.APIのセキュリティ設定
※手順9.(4) 開発者ポータルの Authorization欄に OpenID Connectの項目を追加するための設定

(1).Azure portalの API Managementで、API → 対象のAPIのSettingタブ → Security項目の OpenID connectを選択 → 作成したOpenID Connect Serverを選択

8.Inbound processing設定
(1).Azure portalの API Managementで、API → 対象のAPIのDesignタブ → All operations → + Add Policyを選択

(3).Header name に Authorizationを入力
(4).Faild validation error messageに 認証エラー時にレスポンスするメッセージを入力
(5).Required claimsに、Name aud、Values **アプリケーション (クライアント)ID [*2]を追加
(6).Open ID URLsにOpenID Connect メタデータ ドキュメント [*3]**を入力
(7).Saveをクリック

9.開発者ポータルを使用した動作確認
(1).Azure portalの API Managementで、対象のAPIを選択 → サブスクリプション → 主キーの値(サブスクリプションキー [*6])は後程使用する

(3).APIsから動作確認するAPIを選択 → Try itをクリック

(4).作成したOpenID Connect Serve名の項目で implicitを選択、アクセス許可ダイアログが表示されるので承諾
(5).Subscription keyの項目に**サブスクリプションキー [*6]**を入力

(6).Headersに Authorization と Ocp-Apim-Subscription-Keyが追加されていることを確認







