Active Directory 認証を使用するように Shiro を構成する方法を教えてください。さらに、ユーザー名をカスタム ロールにマップしたいと考えています。これに関する情報が見つからないようです。誰でも私に何か指針を与えることができますか?
2 に答える
Active Directory 認証を行うには、JndiLdapRealmを使用します
承認については、メソッド queryForAuthorizationInfo をオーバーライドします。
おそらくADからグループを取得するため、独自のマッピング(グループからロールへ)を提供する必要があることに注意してください。
この shiroリファレンス マニュアルについて次のように言います。
RolePermissionResolver は、ロール名を Permission インスタンスの具体的なセットに変換する必要がある場合に、Realm によって内部的に使用できます。
これは、パーミッションの概念がないレガシーまたは柔軟性のないデータ ソースをサポートする場合に特に便利な機能です。
たとえば、多くの LDAP ディレクトリにはロール名 (またはグループ名) が格納されていますが、「権限」の概念がないため、ロール名と具体的な権限との関連付けはサポートされていません。Shiro ベースのアプリケーションは、LDAP に保存されているロール名を使用できますが、RolePermissionResolver を実装して LDAP 名を明示的なアクセス許可のセットに変換し、好ましい明示的なアクセス制御を実行します。アクセス許可の関連付けは、別のデータ ストア (おそらくローカル データベース) に格納されます。
これが役立つことを願っています
私は同じことをすることに取り組んでいますが、カスタム AuthenticationStrategy を作成する必要があると確信しています。AD に対して認証したかったのですが、INI を使用してロールを定義しましたが、どちらに対しても認証を受け入れないほど適切に動作させることができませんでした (FirstSuccessfulStrategy を使用しても)。あまり詳しく調べることができなかったので、浮かんでいるシロの誰かがこれを修正できるかもしれませんが、今日これらの問題にぶつかりました.