「[[Open棟梁 wiki>https://opentouryo.osscons.jp]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。 -[[戻る>汎用認証サイトのファーストステップガイド]] --[[ファーストステップ (1)>汎用認証サイトのファーストステップガイド (1)]] --[[ファーストステップ (2)>汎用認証サイトのファーストステップガイド (2)]] --[[ファーストステップ (3)>汎用認証サイトのファーストステップガイド (3)]] --[[ファーストステップ (4)>汎用認証サイトのファーストステップガイド (4)]] --ファーストステップ (5) --[[ファーストステップ (6)>汎用認証サイトのファーストステップガイド (6)]] --[[ファーストステップ (7)>汎用認証サイトのファーストステップガイド (7)]] *目次 [#i6d74b0f] #contents *概要 [#i66a9a73] [[汎用認証サイト(Multi-purpose Authentication Site)]]~ の導入前の評価を行うためのファーストステップガイド。 (5) では、汎用認証サイトを既存のユーザストアに接続し、~ IdP機能を提供せず、STS機能のみを提供する手順を説明する。 *コンフィギュレーション [#r3cd2510] [[必要な機能をロックダウンさせて>汎用認証サイトのコンフィギュレーション#ja5926d6]]、STS専用モードで動作させる。 *動作確認 (1) [#z3b2d831] ログインと、OAuth2、OIDCのID federation以外の~ 機能(サインアップ、編集、管理)が動作しなくなっていることを確認する。 *コード修正 [#teb7e88d] -続いて、以下のコードを修正して、既存のユーザストアに接続する。 -以下のユーザストアについては引き続き必要になるので注意する。 --AuthenticationCodeDictionary --RefreshTokenDictionary --, etc. **UserStoreクラス [#keaf791c] https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/MultiPurposeAuthSite/MultiPurposeAuthSite/Models/ASPNETIdentity/Entity/UserStore.cs 以下のメソッドを修正し、~ 既存のユーザストアからApplicationUser オブジェクトを作成するように変更する。 ***FindByIdAsyncメソッド [#k31dde37] https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/CommonLibrary/Data/CmnUserStore.cs#L207 -userIdを使用して、ユーザストア内を検索し情報をロードする。 -ApplicationUserオブジェクトを生成し(以下は生成例)、 user = await ApplicationUser.CreateBySignup(userName, true); -以下のプロパティを設定する。 --user.Id --user.PasswordHash ***FindByNameAsyncメソッド [#ib0fb94c] https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/CommonLibrary/Data/CmnUserStore.cs#L313 -userNameを使用して、ユーザストア内を検索し情報をロードする。 -ApplicationUserオブジェクトを生成し(以下は生成例)、 user = await ApplicationUser.CreateBySignup(userName, true); -以下のプロパティを設定する。 --user.Id --user.PasswordHash **CustomPasswordHasherクラス [#n68dbe17] https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/CommonLibrary/Password/CustomPasswordHasher.cs ***HashPasswordメソッド [#s46d74e9] https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/CommonLibrary/Password/CustomPasswordHasher.cs#L63 -必要に応じて、既存のユーザストアに保存されている~ パスワード・ハッシュとハッシュ・アルゴリズムを一致させる。 -基本的に、VNHashAlgorithmメソッドを新設して、~ HashPasswordメソッドから利用するようにする。 *動作確認 (2) [#oae535cb] 上記の修正が完了した後に、既存のユーザストアを使用したログインの動作確認を行う。 *補足 [#t9ac4f0d] **ApplicationUserクラス [#pe130485] https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/CommonLibrary/Entity/ApplicationUser.cs CreateByRegisterとCreateBySignupの違い。 ***CreateByRegister [#l0441455] -事前登録用 -ParentIdが必要 ***CreateBySignup [#v76b64d0] -サインアップ用 -ParentIdが不要 -emailConfirmedが必要 **LDAPのハッシュ・パスワードを取得する方法 [#f3dda38d] LDAPのハッシュ・パスワードを取得することはできるか? ***OpenLDAPから [#x7d23e8b] userPassword属性に保存されているので、ldapsearchコマンドを使用してこれを取得する。 ***ActiveDirectoryから [#i2b83ff9] ActiveDirectoryでは、通常、ハッシュ・パスワードを取得できないので、~ sha1hexfltrと言うツールを使用して取り出すことができる模様。 -ActiveDirectoryからパスワードをどうしてもとりたい場合には - taguiの日々の妄想 -ActiveDirectoryからパスワードをどうしてもとりたい場合には - taguiの日々の妄想~ http://d.hatena.ne.jp/tagui99/20100927 ***その他の方法 [#v2d13f1e] パスワードに"LDAP:UserID"などと保存しておき、~ PasswordHasher ([[CustomPasswordHasher>https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/CommonLibrary/Password/CustomPasswordHasher.cs ]])内部で、LDAP認証するのも手。 PasswordHasher ([[CustomPasswordHasher>https://github.com/OpenTouryoProject/MultiPurposeAuthSite/blob/develop/root/programs/CommonLibrary/Password/CustomPasswordHasher.cs]])内部で、LDAP認証するのも手。 -LDAP認証 --VBScript/ADSIでOpenLDAPの認証を受ける - ひらいて~ http://d.hatena.ne.jp/s0u/20060610/1149950451 --[ADSIプログラミング] VBScript でユーザ認証してみよう (OpenDsobject) ---1 https://blogs.technet.microsoft.com/jpilmblg/2009/05/20/adsi-vbscript-opendsobject-1/ ---2 https://blogs.technet.microsoft.com/jpilmblg/2009/05/28/adsi-vbscript-opendsobject-2/ IP:210.234.63.131 TIME:"2020-07-27 (月) 12:13:49" REFERER:"https://opentouryo.osscons.jp/index.php?cmd=edit&page=%E6%B1%8E%E7%94%A8%E8%AA%8D%E8%A8%BC%E3%82%B5%E3%82%A4%E3%83%88%E3%81%AE%E3%83%95%E3%82%A1%E3%83%BC%E3%82%B9%E3%83%88%E3%82%B9%E3%83%86%E3%83%83%E3%83%97%E3%82%AC%E3%82%A4%E3%83%89%20%285%29" USER_AGENT:"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36"