AzureでOpenIDを使う場合の例

<< 目次を表示 >>

ページ位置:  チームでの設計 > ユーザーセキュリティ(アクセス権) > シングルサインオン (SSO) >

AzureでOpenIDを使う場合の例

このページでは、OpenID経由でAzureのユーザーを利用して、シングルサインオン(SSO)でモデルにログインするためのEnterprise Architectの設定をチュートリアルとして説明します。

 

このチュートリアルでは、必要最小限に動作する設定について詳しく説明します。Azureには多数の追加オプションがあり、組織の要件に合わせてカスタマイズする必要があります。

 

このガイドでは、IDトークンのクレームを使用し、グループメンバーシップに基づいて新しいユーザーを自動作成します。この内容はEnterprise Architectのバージョン16以降が必要です。

 

 

アプリケーションの登録を行う

#

説明

1

Azureポータルにログインします。: https://portal.azure.com/.

2

サイドメニューで 'Azure Active Directory' を選択します。

3

'App registrations'を選択し、 New registration ボタンを押します。

4

内容を記入します。

5

アプリケーション名を登録します。この名前はエンドユーザーに表示されます。

6

'Single tenant' のラジオボタンを選択します。

7

リダイレクト URIを指定します。

  • ドロップダウンリストから 'Public client/native (mobile & desktop)' を選択します。
  • 'http://localhost:8888/openid/callback' を入力します。
  • Registerボタンを押します。

 

 

アプリケーションの詳細: URL と Client ID

登録が完了したら、アプリケーションの詳細を参照します。 'Application (client) ID' をコピーします。この内容は後ほどEnterprise Architectから利用します。

 

 

#

説明

1

Enterprise Architectを起動し、対象のプロジェクトを開きます。対象のプロジェクトには、事前にセキュリティ機能を有効にしておきます。

2

ユーザーやグループを管理する権限を持つユーザーでログインします。

3

プロジェクトリボンのセキュリティパネルにあるユーザーボタンを押します。

4

「全体の設定」枠内の「OpenIDのユーザーと連動させる」にチェックを入れます。

5

「OpenIDの設定」ボタンを押します。

6

先ほどコピーした 'Application (client) ID' を クライアントID欄に貼り付けます。

7

スコープ欄に 'profile' を追加し、ユーザーの姓名を渡すようにします。

8

スコープ欄に 'offline_access' も追加し、認証トークンとして自動的にリフレッシュトークンを利用するようにします。

9

この例では 'upn'を利用するので、ユーザーと一致するクレーム欄には 'upn'と入力します。

10

必要に応じて、グループ一致するクレーム欄に'groups'と入力します。

11

「IDトークンをクレームに利用」のチェックボックスにチェックを入れます。「ユーザ情報をクレームに利用」にはチェックを入れないでください。

(注意: ユーザー情報のエンドポイント経由ではなく、IDトークンから直接クレームを取得できます。これには多くの利点があり、より標準に準拠し(ユーザー情報のエンドポイントでのクレームはオプションであり、Azureではカスタマイズできません)、OpenIDプロバイダへのインターネット呼び出しの回数を減らすことができます。)

12

Azure側で 'Endpoints' を選択します。アプリケーションが接続可能なURLが表示されます。

13

'OpenID Connect metadata document' をコピーします。末尾の '.well-known/openid-configuration' は削除します。

14

Enterprise Architectで 手順13の文字列を、OpenID URL欄に入力します。

 

 

APIパーミッションの追加

#

説明

1

'API permissions' をクリックします。

2

'Add a permission'をクリックします。

3

'Microsoft Graph'をクリックします。

4

'Delegated permissions' をクリックします。

5

'OpenId permissions'以下の全ての項目 'email', 'offline_access', 'openid', 'profile' にチェックを入れます。

 

 

ローカルユーザーに一致するクレーム

OpenIDプロバイダから返されたクレームがEnterprise Architectのプロジェクト内のユーザーログイン情報と一致する場合、Enterprise Architectはそのユーザーとしてログオンを実行します。エンドユーザが変更できず、Azure システムの管理者のみが変更できるような、安全なクレームを使用するように注意する必要があります。デフォルトでは、UPN は一般ユーザが変更することはできません。

 

Enterprise Architect でローカルユーザーのログインに一致させるために、どのクレームを使用するかについて検討する必要があります。マイクロソフトでは、名前の変更がメール・ユーザー名・UPNに影響する問題を避けるために、安定したGUID (「sub」または「oid」など) を使用することを推奨しています。しかし、UPNは人間が読めるユーザーログインを可能にするので、その方が望ましいかもしれません。

 

これ以上設定を行わなくても、'oid' や 'sub' (Microsoft が推奨する) といったクレームに対してマッチングを行うことができます。ユーザの UPN やメールアドレスに対するマッチングを有効にするには、 さらなる設定が必要です。

 

Enterprise Architect で「Windows/OpenIDユーザー定義と連動」の設定を有効にする場合、ユーザーには姓と名が必要であり、これらはトークンで Enterprise Architect に引き渡される必要があります。これらも手動で選択する必要があるオプションの項目です。

 

#

説明

1

'Token configuration' をクリックします。

2

'Add optional claim' をクリックします。

3

'ID' を選択します。

4

'family_name, given_name' を選択します。

5

必要に応じて、Enterprise Architectでのログイン情報に一致するかどうかの判定に利用するクレームを選択します。一般的な選択は、'upn', 'email', 'verified_primary_email' です。

この例では、 'upn' を選択します。

6

'Add' をクリックします。

 

 

Azureにユーザーを追加する

この例では、OpenIDの認証の説明のために1名のユーザーを追加します。Azureでのユーザーの追加や設定については他のドキュメントなどをご覧ください。

#

説明

1

'Active Directory' セクションで 'Users' を選択します。

2

'New user' をクリックします。

3

新しいユーザーの情報を入力します。この例では、テスト用の1名のユーザーを登録します。

  • パスワードについての説明を入力します
  • 'Create' をクリックします

 

 

 

Enterprise Architectでの設定を確認する

Enterprise Architect内で動作するかを確認します。

#

説明

1

Enterprise Architectで、OpenIDの設定ダイアログ内にある「テスト」ボタンを押します。

2

表示されるウィンドウ中央の「OpenIDでログイン」ボタンを押します。

このボタンを押すと、Webブラウザが起動し、Microsoftアカウントへのログイン画面が表示されます。

3

先ほど作成したユーザーでログインします。Microsoftアカウントの利用状況はWebブラウザ側で保持されている場合がありますので、必要に応じて過去のログイン履歴をログアウトし、作成したユーザーでログインしてください。

4

新しいパスワードを設定するように求められる場合があります。このパスワードはログイン時に利用します。

5

プロファイルにAzure Appが参照することを許可するかどうかの確認メッセージが表示されます。

(なお、管理者はこの確認メッセージを表示せずに許可する設定が可能です。)

6

Webブラウザにはログインが成功したことを示すメッセージが表示されます。Webブラウザを閉じ、Enterprise Architectに戻ります。

7

Enterprise Architectはテストが成功したことを示すメッセージを表示します。

8

OKボタンを押しメッセージを閉じます。

9

OpenIDの設定ダイアログでOKボタンを押します。設定内容が保存されます。

 

 

Enterprise Architectに一致するユーザーを追加する

Enterprise Architectのプロジェクトに、Azureのユーザーに一致するユーザーを追加します。

#

説明

1

プロジェクトリボンのセキュリティパネルにあるユーザーボタンを押します。

2

AzureのUser Principal Name (UPN) をコピーし、IDの欄に貼り付けます。

3

姓および名を入力します。Azureの情報に一致する必要はありません。

4

保存ボタンを押します。

 

 

プロジェクトにログインできるかどうか確認する

#

説明

1

Enterprise Architectを終了し、再起動します。

2

対象のプロジェクトを開きます。

3

OpenIDのログインウィンドウが表示されます。ウィンドウ中央の「OpenIDでログイン」ボタンを押します。

 

もし、OpenIDのログインダイアログではなく、通常のEnterprise Architectのログイン画面が表示される場合には、Enterprise Architectの画面右上の、ログインユーザー名が表示されるボタンを押し、「OpenIDのログインウィンドウを非表示」のチェックを外してください。

4

WebブラウザでAzureにログインします。成功したらWebブラウザを閉じ、Enterprise Architectに戻ります。新しく作成したユーザーでログインできていることを確認します。

5

なお、Enterprise Architectの画面右上のボタンには、ログインしているユーザー名が表示されます。このボタンの表示でも、ログインできているかどうかを確認できます。

6

システムの出力サブウィンドウには、ログインに関するログが表示されます。この例ではグループの内容には一致していないという警告が表示されます。

 

このように、Enterprise Architectにユーザーを手動で追加する場合には、ここから先の説明の手順を進める必要はありません。

 

WindowsやOpenIDのユーザーを自動的に作成・変更したい場合には、さらに次の手順を進めます。

 

 

「Windows/OpenIDユーザー定義と連動」の設定について

この設定を有効にすると、Azureでグループを設定し、Enterprise Architectでそのグループをローカルグループにリンクさせることができます。そして、ユーザーが初めてログインしようとしたときに、自動的にプロジェクトにユーザーを作成できます。新規および既存のユーザーは、ログインするたびにグループメンバーシップが更新され、Azureのリンクされたグループと一致するようになります。

 

 

IDトークンにグループクレームを追加する

UPNや名前のクレームを追加した方法と同様に、IDトークンにグループのクレームを追加します。

 

#

説明

1

'Azure > Azure Active Directory > App registrations' を選択します。

2

Enterprise Architectのアプリケーションの項目をクリックします。

3

サイドバーから 'Token configuration' を選択します。

4

'Add groups claim' をクリックします。

5

'Security groups'を選択します。

6

IDのセクションを展開します。

7

必要に応じて、Enterprise Architectのログイン名と照合するクレームの選択と同様に、Enterprise Architectのローカルグループとグループを照合するためのクレームについても考慮します。この例では、デフォルトで「グループID」を選択しています。これはGUID文字列であり、簡単にコピーして使いまわすことができ、グループ名が変わっても同じままです。しかし、Enterprise Architectで連携を確認する場合には、どのグループにマッチしているのかがわかりにくいため、sAMAccountNameの設定のいずれかがより適切である場合があります。この例では、デフォルトで選択されている「グループID」を利用することにします。

8

Add ボタンをクリックします。

 

 

Azureのグループを追加する

'Azure Active Directory'内で次の作業を行います。

#

説明

1

サイドバーから 'Groups' を選択します。

2

'New Group' をクリックします。

3

'Group type' を 'Security' とします。

4

グループの名前を入力します。例えば、 'EA Users', 'EA Administrators', 'EA Read-only' 等を設定します。

5

'No members selected' をクリックし、テストユーザーを追加します。

6

テストユーザーを選択し、'Select' をクリックします。

7

'Create'をクリックし、グループを作成します。

8

グループの一覧を更新します。30秒くらいかかる場合があります。

9

作成したグループの 'Object Id' をコピーします。次の作業で使います。

10

また、Application Details: URL, Client IDのセクションも確認します。

 

 

Enterprise Architectのグループと結びつける

#

説明

1

Enterprise Architectを起動します。

2

プロジェクトを開きます。OpenIDでのログインはキャンセルし、プロジェクトの管理権限を持つユーザーでログインします。

3

プロジェクトリボンのセキュリティパネルにあるグループボタンを押します。

4

新しいグループを作成します。名前はAzureのグループと一致する必要はありません。

5

Azureグループの'Object ID'をOpenIDの欄に貼り付けます。

6

保存ボタンを押し、グループを作成します。

 

「Windows/OpenIDユーザー定義と連動」の設定を有効にします。

#

説明

1

グループタブを閉じます。

2

プロジェクトリボンのセキュリティパネルにあるユーザーボタンを押します。

3

「Windows/OpenIDユーザー定義と連動」の設定にチェックを入れます。

 

ここまでの設定が正しくできているかどうか、テストします。

#

説明

1

OpenIDの設定ボタンを押します。

2

グループと一致するクレームの欄にグループ情報を入れていない場合、設定します。

3

テストボタンを押します。

4

OpenIDでログインボタンを押します。

5

Azureにログインします。

 

結果がEnterprise Architectで表示されます。ユーザー名だけでなくグループ名も表示されることを確認してください。

 

 

最終確認

「Windows/OpenIDユーザー定義と連動」の設定が正しく動作するか、最終確認します。

#

説明

1

Enterprise Architectを終了し、再度起動します。

2

OpenID利用しプロジェクトにログインします。出力サブウィンドウに表示されるログに、グループに関する情報が表示されることを確認してください。