OpenIDの設定

<< 目次を表示 >>

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

OpenIDの設定

OpenIDを利用してプロジェクトを利用できるようにするためには、'OpenID Connect'標準に対応するOpenIDサーバが必要です。

 

ここで設定した内容は、Enterprise Architectからの利用だけでなく、Pro Cloud Server や WebEAでも利用されます。

 

 

利用手順:

リボン

  • プロジェクト > セキュリティ > ユーザー > OpenIDのユーザーと連動させる
  • プロジェクト > セキュリティ > ユーザー > OpenIDの設定ボタン

 

 

設定

 

 

項目

説明

OpenID URL

OpenIDサーバのいちを示すURLを入力します。末尾に "/.well-known/openid-configuration" がある場合、削除してください。(この内容は自動的に付加されます。)

 

また、プロトコル (http:// あるいは https://) および、標準とは異なる場合にはポート番号を含めてください。

ここで設定する内容に "/.well-known/openid-configuration" を追加した内容をWebブラウザで開き、適切な返信が表示されることを確認してください。

設定が完了したら「テスト」ボタンを押してください。設定が適切であれば 「OpenIDでログイン」 ボタンを持つ画面が表示されます。設定に誤りがあれば、ボタンを押した際にエラー内容がWebブラウザに表示されます。

クライアントID

Enterprise ArchitectがOpenIDのサービスを利用するためにはクライアントIDの設定が必要です。その設定済みのクライアントIDを指定してください。

クライアントの秘密

OpenIDサーバによっては、クライアントの秘密 (Client Secret) が必要になる場合があります。その場合にはその内容を入力してください。ここで入力した内容は暗号化されて保存します。

スコープ

必要な情報を得るためには、OpenIDのスコープが必要になります。'openid'のスコープは必須です。その他の一般的なスコープとして'profile' や'email' があります。

ユーザと一致するクレーム

OpenIDの'user_info'を要求した場合に戻されるクレームのうち、どの情報を利用するのかを入力します。この内容は、プロジェクトに定義されたどのユーザーとしてログインさせるかを決めます。

'Claims' は、OpenIDサーバで認証が成功した場合に戻される情報です。多くのOpenIDサーバでは、この内容をカスタマイズ可能になっています。そのため、Enterprise Architectのプロジェクトのユーザー名と一致させるように変えることができます。

注意:

ユーザーごとに一意であることが保証されるクレームは 'sub' のみです。これはクレームの 'subject' です。クレームフィールドの既定値に設定するとよいです。

既にユーザーが定義されているプロジェクトについては、OpenIDサーバから返される値が既存の情報に一致するようにしなければなりません。その場合には、'username'フィールドなどを利用し、一致する情報を設定します。また、'preferred_username', 'email' など他のフィールドを利用したり、独自に 'EA username' のようなフィールドを定義して対応する値を設定する方法も考えられます。

sub以外のクレームを利用するかどうかはOpenIDサーバの管理者の方針にも依存します。該当のクレームが一意で安全であり、また利用者が変更不可能でなければなりません。

グループと一致するクレーム

この設定は、「Windows/OpenIDユーザー定義と連動」が有効になっている場合に利用されます。この設定については、「シングルサインオンのオプション」ページをご覧ください。

 

OpenIDの'user_info'を要求した場合に戻されるクレームのうち、どの情報を利用するのかを入力します。この内容は、プロジェクトに定義されたどのグループに所属するかを決めます。

 

'Claims' は、OpenIDサーバで認証が成功した場合に戻される情報です。多くのOpenIDサーバでは、この内容をカスタマイズ可能になっています。そのため、Enterprise Architectのプロジェクトのグループ名と一致させるように変えることができます。

 

OpenIDの仕様では、ユーザーが所属するグループという定義はありません。OpenIDサーバによってはこうした仕組みを独自に持つものもありますが、Enterprise Architectで利用する場合には'user_info'としてグループの情報が得られるようになっている必要があります。グループ名は、単一のJSONフィールドか、複数のグループ名をJSON配列で返す必要があります。

IDトークンをクレームに利用

IDトークンをクレームに利用するように設定します。

ユーザ情報をクレームに利用

ユーザ情報をクレームに利用するように設定します。

 

 

接続のテスト

全ての設定が完了したら、「テスト」ボタンを押してください。「OpenIDでログイン」ボタンを持つウィンドウが開きます。このボタンを押すとWebブラウザが起動し、OpenIDサーバの認証ページを開きます。

 

必要な情報を入力し、Enterprise ArchitectでOpenIDサーバのアカウントを利用できるようにしてください。OpenIDサーバの設定等によっては、入力が不要の場合もあります。OpenIDサーバとの接続時に、Windowsからファイアウォールの設定を変更するための「Windows セキュリティの重要な警告」ダイアログが表示される場合があります。このOpenIDでの認証の場合にはこの設定は不要ですので、「キャンセル」ボタンを押してダイアログを閉じてください。

 

認証に成功したら、Webブラウザは自動的に閉じられ、Enterprise Architectに成功を示す情報が表示されます。

 

なお、Webブラウザがセッションや認証情報をキャッシュする場合があります。その場合には、認証の画面が表示されずにそのままログオンされる場合があります。

 

 

有効な 'user_info' の戻り値の例

'KeyCloak' OpenID サーバを利用した場合の戻り値の例です。

 

ユーザー名に一致するクレーム: username

グループに一致するクレーム: groups

 

{

   "sub": "6da812c4-8f2c-400f-b602-13bab1d4605e",

   "address": {},

   "name": "Example Person",

   "groups": [

 

       "EA Special Users",

       "EA Administrators"

 

   ],

 

   "given_name": "Example",

   "family_name": "Person",

   "email": "eperson@example.com",

   "username": "eperson"

}