Open棟梁 wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

汎用認証サイト(Multi-purpose Authentication Site)
の導入前の評価を行うためのファーストステップガイド。

(13) オプションを変更してテストする

UserName?=メアド以外

app.configファイルを設定する。

サインアップ・サインインを確認する。

  • メアド以外のUserName?でサインアップ・サインインできることを確認する。
  • 特にサインアップ・プロセスの動作変更に注意する。

E-mailアドレスを登録する。

サインインした後、ヘッダに表示されている「こんにちは[メールアドレス]さん!」をクリックし、アカウント編集画面へ遷移する。

このオプションを設定した場合、[E-mailの設定]リンクが表示され、これからE-mailアドレスを登録可能。

管理画面への遷移

この際、カスタムのE-mailアドレスの確認(E-mail confirmation)プロセスが実行される。

アカウント管理画面から追加・更新する。

アカウント管理画面からUserName?=メアド以外のユーザーを追加・更新できることを確認する。

管理画面への遷移
  • UserName?=メアド以外で、ユーザーを追加
    ユーザーの追加
  • UserName?=メアド以外で、ユーザーを更新
    ユーザーの更新
  • UserName?=メアド以外のユーザーが追加・更新されたことを確認する。
    追加・更新されたアカウント

その他のテストケースを確認する。

管理画面

概要

アカウント・ロールの管理画面には、権限のあるアカウントでアクセスする必要がある。

管理画面への遷移

参考

詳しくは、

汎用認証サイトのファーストステップガイド (2) - (9) アカウント(ユーザ・ロール)の管理

を参照のこと。

(14) OAuth2の3分割テストを行う。

汎用認証サイトをOAuth2で登場する3つのサーバー機能に分割して動作検証をする。

  • Authorization Server
  • Resource Server
  • Client

サイトを3分割する。

以下のような感じで、サイトを3分割する。

・MultiPurposeAuthSiteフォルダ
  ├ CreateClientsIdentityフォルダ
  ├ packagesフォルダ
  ├ MultiPurposeAuthSiteフォルダ
  ├ MultiPurposeAuthSiteRフォルダ
  ├ MultiPurposeAuthSiteCフォルダ
  ├ MultiPurposeAuthSite.slnファイル
  ├ MultiPurposeAuthSiteR.slnファイル
  └ MultiPurposeAuthSiteC.slnファイル

MultiPurposeAuthSite?フォルダを3分割する。

  • 以下のフォルダをコピーして複製し、
    • C:\MultiPurposeAuthSite?\root\programs\MultiPurposeAuthSite?\MultiPurposeAuthSite?
  • 以下のようにリネームする。
  • MultiPurposeAuthSite?
    Authorization Serverの役割
  • MultiPurposeAuthSiteR
    Resource Serverの役割なので末尾に「R」を付与。
  • MultiPurposeAuthSiteC
    Clientの役割なので末尾に「C」を付与。

MultiPurposeAuthSite?.slnファイルを3分割する。

  • 以下のファイルをコピーして複製し、
    C:\MultiPurposeAuthSite?\root\programs\MultiPurposeAuthSite?\MultiPurposeAuthSite?.sln
  • 以下のようにリネームする。
    • MultiPurposeAuthSite?.sln
    • MultiPurposeAuthSiteR.sln
    • MultiPurposeAuthSiteC.sln
  • それぞれ*.slnファイルをTextEditor?などで開いて、
    内部で指しているMultiPurposeAuthSite?.csprojへのパスを変更する。

MultiPurposeAuthSite?.csprojのポート番号を変更する。

3サイト同時起動のためMultiPurposeAuthSite?.csprojのポート番号を変更する。

  • 以下のファイルのポート番号部分と重複しないようにする。
    • .\MultiPurposeAuthSite?\MultiPurposeAuthSite?.csproj
      <IISUrl>http://localhost:63359/MultiPurposeAuthSite/</IISUrl>
  • ここでは、それぞれ、以下のようにポート番号を変更した。
    • .\MultiPurposeAuthSiteR\MultiPurposeAuthSite?.csproj
      <IISUrl>http://localhost:9998/MultiPurposeAuthSite/</IISUrl>
    • .\MultiPurposeAuthSiteC\MultiPurposeAuthSite?.csproj
      <IISUrl>http://localhost:9999/MultiPurposeAuthSite/</IISUrl>

それぞれのapp.config設定を行う。

以下のファイルの設定を変更する。
C:\MultiPurposeAuthSite?\root\programs\MultiPurposeAuthSite?\MultiPurposeAuthSite?\app.config

ユーザストアをDBMSストアに変更する。

コチラを参考にして、ユーザストアをDBMSストアに変更する。

ResourceServerエンドポイントの設定

  • 以下の設定を、
    <add key="OAuthResourceServerEndpointsRootURI" value="http://localhost:63359/MultiPurposeAuthSite" />
  • のように変更する。
    <add key="OAuthResourceServerEndpointsRootURI" value="http://localhost:9998/MultiPurposeAuthSite" />

Clientエンドポイントの設定

  • 以下の設定を、
    <add key="OAuthClientEndpointsRootURI" value="http://localhost:63359/MultiPurposeAuthSite" />
  • のように変更する。
    <add key="OAuthClientEndpointsRootURI" value="http://localhost:9999/MultiPurposeAuthSite" />

設定したapp.configを複製する。

  • 設定したapp.configを
  • C:\MultiPurposeAuthSite?\root\programs\MultiPurposeAuthSite?\MultiPurposeAuthSite?\app.config
  • 以下の場所に複製します。
  • C:\MultiPurposeAuthSite?\root\programs\MultiPurposeAuthSiteR\MultiPurposeAuthSite?\app.config
  • C:\MultiPurposeAuthSite?\root\programs\MultiPurposeAuthSiteC\MultiPurposeAuthSite?\app.config

3つのサイトをデバッグ実行をする。

3つのサイトを*.slnファイルから開いてデバッグ実行をする。

*.slnファイルからWebサイトを開く

  • Authorization Serverの役割
    C:\MultiPurposeAuthSite??\root\programs\MultiPurposeAuthSite?.sln
  • Resource Serverの役割
    C:\MultiPurposeAuthSite??\root\programs\MultiPurposeAuthSiteR.sln
  • Clientの役割
    C:\MultiPurposeAuthSite??\root\programs\MultiPurposeAuthSiteC.sln

それぞれ、F5を押下してデバッグ実行を開始する。

Clientから、Authorization Codeグラント種別をテストする。

  • ここで、[Authorization Codeグラント(client_id, response_type, scope, state)]リンクを押下する。
  • すると、Authorization Serverのサインイン画面に遷移するのでログインを行う。
  • サインイン後、Authorization Serverの[リソース・アクセスの認可]画面に遷移するので、権限付与の認可を行う。
  • すると、Clientに戻ってきて、ここでCodeがBearer Tokenに変換される。
  • そして、ClientのOAuthAuthorizationCodeGrantClient?(テスト用)画面が表示される。
  • ここで、[GetUserClaim?]ボタンを押下すると、ClientからResource ServerにWebAPI呼出が行われ結果が返る。

処理フローの説明

(1) スターターの位置

ClientからAuthorization Serverへ遷移。

(2) スターターの飛び先

Authorization Serverでは、以下のルートで、[リソース・アクセスの認可]画面を表示。

(3) 権限付与の認可を行う。

Authorization Serverの[リソース・アクセスの認可]画面でポストバックすると、ClientのRedirectエンドポイントへRedirectされる。

(4) Bearer Tokenを取得する。

ClientのRedirectエンドポイントでBearer Tokenを取得してResourcesにアクセスする。

  • ここで、仲介コードを使用してTokenエンドポイントにアクセスする。
  • Access Token・Refresh Tokenのレスポンスが返る。

(5) 以下はテスト用の処理フロー

通常、仲介コードやAccess Token・Refresh Tokenは露見させないが、
ここではテスト用に、[Authorization Code Grant]画面にこれらを表示する。

その後、以下のRefresh処理、Get user claim処理を実行することができる。

  • Refreshボタンを押下
  • Tokenエンドポイントで、Refresh Tokenを使用してAccess Tokenを更新
    GET : /OAuthBearerToken?
  • ClientからResource ServerにWebAPI呼出が行われ結果が返る。
    なお、認可処理は、WebAPI内部でscopeを確認して行う。

添付ファイル: fileAdministration.png 97件 [詳細] fileEditUser.png 155件 [詳細] fileAddUser.png 166件 [詳細] fileUserList.png 106件 [詳細] fileAddEmailAddress.png 97件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2017-10-25 (水) 16:02:40 (664d)