概要
この記事には2つの目的がありまして、1つはGluuというよく分からないOSS製品を利用して、
Office365とのSSO連携が可能であるかを確認すること。そして、もう一つなのですが、
僕は普段、Mac端末を利用しているのですが、Mac端末からOffice365のSSO連携を
実現できるのかという疑問にもチャレンジしていきたいと考えています。
Mac端末へのPowershell配備
以下、公式にMAC OSへのPowerShell配備方法が記載されていました。
正直、PowerShellがインストールできてしまえば、なんでもは言い過ぎかもしれないけど、
結構、ほとんどのことが出来ますよね(汗
前提として、Homebrewが導入されていることになりますけど、以下のコマンドを実行することで、
自分のMAC端末にPowerShellを導入することが出来ます。
brew cask install powershell
🍺 powershell was successfully installed!
が表示されれば導入完了です。
以下のコマンドを実行して、MACのターミナルがPowerShellのコマンド画面に切り替われば、動作しています。
wsh
PowerShell 6.2.0
Copyright (c) Microsoft Corporation. All rights reserved.
https://aka.ms/pscore6-docs
Type 'help' to get help.
PS /Users/User01>
ここにOffice365への接続用モジュールを追加してみます。
Install-Module MSOnline
とりあえず、ここまで出来ましたが、Connect-MsolOnline
が実行出来ません…
どうやら、SSOの設定をMAC端末で完結させるのは難しそうですね。
Gluuの設定
1.OpenDJのスキーマ拡張
昨日、これがよく分からなくて、結局、1日格闘する羽目になってました…
Gluuの公式ページにO365の連携を行うための設定手順が記載されたページがあるのですが、
このページ、残念なことに手順を記載していると思われる部分のキャプチャがきちんとアップロード出来ていなくて、
肝心な設定が記載されている箇所を確認することが出来ないです…
そのため、四苦八苦したのですが、結果としてスキーマ拡張は出来て、
目的としていたO365とのSAML連携に必要な属性値の追加に成功したので、
解決に至ったプロセスまで忘れたくないので、こちらに記録しておくことにします。
[1]きっと、OpenDJの公式サイトにスキーマ拡張手順が掲載されているだろう
[2]OpenDJの設定を変更したら、OpenDJのサービス再起動が必要になると思われる
まず、↑の[2]はOpenDJのフォーラムに答えがありました。
次に[1]なのですが、確かに答えっぽいものはいくつか上がってはいたのですが、
肝心要のO365連携に必要となる属性をどのように設定(定義)すれば良いのかを
記載しているサイトはありませんでした…
そのため、結局、原点回帰ということでGluuのサイトに戻ってきて、手順を確認しました。
前提部分にはなるのですが、OpenDJの設定を変更するためにはまず、
Jettyを起動し、Gluuサーバーにログインしておく必要があります。
※この部分についてはインストール手順に説明を補記します。
/sbin/gluu-serverd-3.1.6 start
/sbin/gluu-serverd-3.1.6 login
ログインしたら、OpenDJのスキーマファイルを編集します。
cp -p /opt/opendj/config/schema/77-customAttributes.ldif /opt/opendj/config/schema/77-customAttributes.ldif.org
vi /opt/opendj/config/schema/77-customAttributes.ldif
dn: cn=schema
objectClass: top
objectClass: ldapSubentry
objectClass: subschema
cn: schema
attributeTypes: ( 1.3.6.1.4.1.48710.1.3.1001 NAME 'objectguid'
DESC 'Custom Attribute Office 365'
EQUALITY caseIgnoreMatch
SUBSTR caseIgnoreSubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
X-ORIGIN 'Gluu custom attribute' )
attributeTypes: ( 1.3.6.1.4.1.48710.1.3.1002 NAME 'ImmutableID'
DESC 'Custom Attribute Office 365'
EQUALITY caseIgnoreMatch
SUBSTR caseIgnoreSubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
X-ORIGIN 'Gluu custom attribute' )
attributeTypes: ( 1.3.6.1.4.1.48710.1.3.1003 NAME 'IDPEmail'
DESC 'Custom Attribute Office 365'
EQUALITY caseIgnoreMatch
SUBSTR caseIgnoreSubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
X-ORIGIN 'Gluu custom attribute' )
objectClasses: ( 1.3.6.1.4.1.48710.1.4.101 NAME 'gluuCustomPerson'
SUP ( top )
AUXILIARY
MAY ( telephoneNumber $ mobile $ carLicense $ facsimileTelephoneNumber $ departmentNumber $ employeeType $ cn $ st $ manager $ street $ postOfficeBox $ employeeNumber $ preferredDeliveryMethod $ roomNumber $ secretary $ homePostalAddress $ l $ postalCode $ description $ title $ objectguid $ ImmutableID $ IDPEmail )
X-ORIGIN 'Gluu - Custom persom objectclass' )
ここで情報を補足します。
まず、/opt/opendj/config/schema/ディレクトリ配下にOpenDJ自体のスキーマファイルが保存されています。
そして、77-customAttributes.ldif
ファイルというのはGluuサーバー上で
CustomPerson
というオブジェクトクラスを定義しているスキーマファイルになります。
こちらのスキーマにオブジェクトクラスの定義を追加することでGluuサーバー上でカスタム属性を利用できるようになります。
定義はGluuのフォーラムから引っ張ってきたものなので、そのまま引用します。
これも何回か書き直してスキーマを認識するようになったのですが、
重要なのは書式チェックが厳しく行われるようなので、書き写す際に要注意です。
不要な改行やスペースが含まれていると正常に認識されません。
上記のスキーマ定義を設定ファイルに追加したら、OpenDJのサービスを再起動します。
/opt/opendj/bin/stop-ds --restart
The Directory Server has started successfully
と表示されれば再起動に成功してます。
2.カスタム属性の追加
ここからはGluuサーバー上の設定操作になります。
左側のメニューから、[Configuration]-[Attribute]をクリックします。
次に画面上部に表示されている[Register Attribute]をクリックします。
すると属性を登録する画面が表示されるので、Office365とのSAML連携に必要な以下の2属性を登録します。
objectguid
とIDPEMail
の2属性です。
それぞれ以下のような設定内容で登録しています。
<objectguid>
Name:* objectguid ←これはオブジェクトクラスを指定します
SAML1 URI: urn:gluu:dir:attribute-def:objectguid
SAML2 URI: urn:oid:1.3.6.1.4.1.48710.1.3.1001
Display Name:* objectguid
Type:* Text
Edit Type: admin
View Type: admin,user
Usage Type: Not defined
Multivalued:* False
oxAuth claim name:
SCIM Attribute: False
Description:* Office365
Enable custom validation for this attribute: チェックあり
Validation RegExp:
Enable tooltip for this attribute:
Minimum Length:
Maximum Length:
Regex Pattern:
Status:*
<IDPEmail>
Name:* IDPEmail
SAML1 URI: urn:gluu:dir:attribute-def:IDPEmail
SAML2 URI: urn:oid:1.3.6.1.4.1.48710.1.3.1003
Display Name:* IDPEmail
Type:* Text
Edit Type: admin
View Type: admin,user
Usage Type: Not defined
Multivalued:* False
oxAuth claim name:
SCIM Attribute: False
Description:* Office365
Enable custom validation for this attribute: チェックあり
Validation RegExp:
Enable tooltip for this attribute:
Minimum Length:
Maximum Length:
Regex Pattern:
Status:*
登録されると属性値の一覧画面に2属性が表示されるようになります。
ちょっと記事が長くなりそうなので、何回かに分けて連載したいと思います。