SAML および LDAP サポートと ColdFusion Administrator の統合

LDAP とは

LDAP は軽量ディレクトリアクセスプロトコル(Lightweight Directory Access Protocol)です。LDAP の主な機能は、組織や人物などに関するデータをユーザーが検索できるようにすることです。この目的を達成するために、LDAP は LDAP ディレクトリにデータを格納し、このディレクトリにアクセスするユーザーを認証します。LDAP は、Active Directory(AD)など、ほとんどのベンダーディレクトリサービスで動作します。これにより、ユーザー、サービス、システム、ネットワーク、およびアプリケーションに関する情報をディレクトリサービスから他のアプリケーションやサービスに共有する機能を実装しやすくなります。

ColdFusion では、ColdFusion Administrator 内から LDAP サーバーのユーザーまたはグループを統合できます。ColdFusion の以前のリリースでは、ColdFusion Administrator を使用してユーザーマネージャーを作成できました。これは、ユーザーを作成してユーザーに一度に一つずつ権限を割り当てるのに役立ちます。

ColdFusion では、以下を行うことができます。

  • LDAP ユーザーストアの設定 - 接続とユーザー/グループの読み込みに必要なすべてのデータを保存するのに役立ちます。
  • ユーザーストアからの LDAP ユーザーおよびグループの読み込み - 選択したユーザー/グループを、追加したユーザーストアから読み込むのに役立ちます。
  • ユーザーおよびグループへの権限の付与

外部認証タイプの追加

セキュリティ/Administrator で「別のユーザー名とパスワードで認証する (複数のユーザーを許可する)」オプションを選択すると、外部認証タイプを追加できます。

外部認証を追加するには:

SAML

LDAP

SAML/LDAP の設定

LDAP

セキュリティ/Administrator/外部認証で、または setAdminLdapConfiguration 関数を使用して、LDAP 設定の詳細を追加します。

次に、セキュリティ/ユーザーマネージャーページで、LDAP 認証タイプを選択し適切な役割を指定して、ユーザーを CF Admin に追加します。

その後、Administrator ログインページからログインすることができます。

LDAP の設定

ユーザーの追加(LDAP)

SAML

まず、セキュリティ/IdP 設定ページおよびセキュリティ/SP 設定ページから、SAML IdP および SP 設定を追加します。

次に、セキュリティ/ユーザーマネージャーページで、SAML 認証タイプを選択し適切な役割を指定して、ユーザーを CF Admin に追加します。

これで、ログインページに SSO ログインというオプションが表示されるようになります。

このオプションをクリックすると、ID プロバイダーログインページにリダイレクトされます。そこでログインに成功したら、ColdFusion Administrator ページ内に戻ります。

ユーザーの追加(SAML)

SAML および LDAP 用の管理 API

説明

LDAP 設定を指定します。

シンタックス

public setAdminLdapConfiguration(必須文字列 host, 必須文字列 tcpPort, 必須文字列 userBaseContext, 必須文字列 groupBaseContext, 必須文字列 usernameAttr, 必須文字列 groupnameAttr, 必須文字列 timeout, 文字列 userConfig="", 文字列 groupConfig="", 文字列 userbindDN="", 文字列 userbindPass="", ブーリアン isSSLEnabled="false", ブーリアン isStartTLSEnabled="false")

パラメーター

  • host:文字列、必須、host - ホスト名または IP アドレス
  • tcpPort:文字列、必須、tcpPort
  • userBaseContext:文字列、必須、userBaseContext - ユーザーを検索するための開始点
  • groupBaseContext:文字列、必須、groupBaseContext - グループを検索するための開始点
  • usernameAttr:文字列、必須、usernameAttr - 値が一意でユーザーの検索に使用できる属性(例:uid)
  • groupnameAttr:文字列、必須、groupnameAttr - 値が一意でグループの検索に使用できる属性(例:cn)
  • timeout:文字列、必須、timeout - 検索中のタイムアウト
  • userConfig:文字列、オプション、userConfig - フィルターとして機能するユーザーのオブジェクトクラス
  • groupConfig:文字列、オプション、groupConfig - フィルターとして機能するグループのオブジェクトクラス
  • userbindDN:文字列、オプション、userbindDN - LDAP サーバーへの接続に使用される DN
  • userbindPass:文字列、オプション、userbindPass - 指定された DN のパスワード
  • isSSLEnabled:ブーリアン、オプション、isSSLEnabled - cfldap タグの CFSSL_BASIC を参照。証明書は、CF Java キーストアに読み込む必要があります。
  • isStartTLSEnabled:ブーリアン、オプション、isStartTLSEnabled - 通常の LDAP ポートを介して SSL を開始する際に startTls 拡張機能を使用するかどうかを指定します。

説明

LDAP 設定を返します。

シンタックス

getAdminLdapConfiguration()

説明

LDAP 設定を削除します。

シンタックス

deleteLdapConfiguration()

説明

外部認証のタイプを設定します。タイプが SAML の場合は、設定の詳細を追加します。

シンタックス

setExternalAuthentication(必須文字列 type, 構造体 config="[実行時式]")
  • type:文字列、必須、type - 認証のタイプを指定します
  • config:構造体、オプション、config - SAML 設定の詳細を含んだ構造体を指定します

説明

選択された外部認証タイプを返します。

シンタックス

getExternalAuthentication()

説明

SAML 設定を削除します。

シンタックス

deleteAdminSamlConfig()

説明

SAML 設定を返します。

シンタックス

getAdminSamlConfig()

説明

接続が確立できるかどうかを返します。

シンタックス

ブーリアン verifyConnection()

SAML

<cfscript>	 
		adminObj = CreateObject(&quot;component&quot;,&quot;CFIDE.adminapi.administrator&quot;);
		adminObj.login(&quot;Adm1n$&quot;,&quot;admin&quot;);
		
		secCFC = CreateObject(&quot;component&quot;,&quot;CFIDE.adminapi.security&quot;);
		
        // SP 設定を追加
		secCFC.addSpMetadata ( alias=&quot;#okta_sp_alias#&quot;, entityid=&quot;#okta_sp_entityid#&quot;, acsurl=&quot;#okta_sp_acsurl#&quot;, slourl=&quot;#okta_sp_slourl#&quot;, signrequests=&quot;true&quot;, wantassertionssigned=&quot;true&quot;, logoutresponsesigned=&quot;true&quot;, signkeystorepath=&quot;#okta_sp_signkeystorepath#&quot;, signkeystorepassword=&quot;#okta_sp_signkeystorepassword#&quot;, signkeystorealias=&quot;#okta_sp_signkeystorealias#&quot; )
		
        // IDP 設定を追加	
		secCFC.addIdpMetadata(alias = &quot;#okta_idp_alias#&quot;, url=&quot;#okta_idp_url#&quot;);
		
        // 新しい SAML ユーザーを追加
		secCFC.setUser(&quot;saml_username&quot;, 
				&quot;&quot;, 
				&quot;&quot;,
				[&quot;coldfusion.administrator&quot;,&quot;coldfusion.adminapi&quot;],
				true, 
				true, 
				false,
				[],[],[],
				false,
				false,
				false, 
				true,
				false);
		
		config = {
 				idpName = &quot;#okta_idp_alias#&quot;,
				spName = &quot;#okta_sp_alias#&quot;,
				groupName = &quot;#group_Name&quot;
			}
		
        // 外部認証のタイプを SAML に設定し、ID プロバイダーの IdP、SP および groupName 属性名で構成される設定を渡す	
		secCFC.setExternalAuthentication(&quot;Saml&quot;,config);
		
       // 追加された SAML 設定の詳細を取得
		saml_config = secCFC.getAdminSamlConfig();
		writeDump(saml_config);
		
		
	</cfscript>

LDAP

<cfscript>
			adminObj = CreateObject(&quot;component&quot;,&quot;CFIDE.adminapi.administrator&quot;);
			adminObj.login(&quot;Adm1n$&quot;,&quot;admin&quot;)
			
			secCFC = CreateObject(&quot;component&quot;,&quot;CFIDE.adminapi.security&quot;)

            // LDAP 設定を追加
			secCFC.setAdminLdapConfiguration(ads_ldap_host, 
			ads_ldap_port, 
			ads_ldap_userBaseContext, 
			ads_ldap_groupBaseContext,   
			ads_ldap_usernameAttr,
			ads_ldap_groupnameAttr,
			ads_ldap_timeout,
			ads_ldap_userConfig,			
			ads_ldap_groupConfig, 		
			ads_ldap_userbindDN,
			ads_ldap_userbindPass,
			ads_ssl_enabled,
			ads_starttls);
			
            // LDAP 設定の詳細を取得
			ldap_conf_details = secCFC.getAdminLdapConfiguration();
			
            // 適切な役割を持つユーザーを追加
			secCFC.setUser(ldap_admin_username, 
				ldap_admin_password, 
				&quot;&quot;,
				[&quot;coldfusion.administrator&quot;,&quot;coldfusion.adminapi&quot;],
				true, 
				true, 
				false,
				[],[],[],
				false,
				false,
				true, 
				false,
				false);
			
            // 外部認証のタイプを LDAP に設定
			secCFC.setExternalAuthentication(&quot;ldap&quot;);
				
            // 新しく追加された LDAP ユーザーを使用してログイン
			adminObj_new = CreateObject(&quot;component&quot;,&quot;CFIDE.adminapi.administrator&quot;);
			if(adminObj_new.login(ldap_admin_password,ldap_admin_username)==true)
				writeOutput(&quot;Logged in User #ldap_admin_username1#&quot;);
			// LDAP 設定を削除
			secCFC.deleteLdapConfiguration();
		
</cfscript>

ID プロバイダーでアプリケーションを作成する際に追加される ACS URL は、次の形式にする必要があります。

<cfadmin_host>:<cfadmin_port>/CFIDE /administrator/saml/acs.cfm

SAML および LDAP をセットアップするための CFSetup コマンド

外部認証タイプとして SAML/LDAP を有効にするには、マルチユーザー認証タイプが有効になっている必要があります。また、SAML/LDAP の設定も存在する必要があります。

  1. cfsetup で samlconfig/ldapconfig の add コマンドを使用して、SAML/LDAP 設定を追加します。
  2. セキュリティカテゴリでは、他のパラメーターの中でも、adminAuthType を MULTIUSER に、externalAuth を SAML/LDAP にそれぞれ設定します。

SAML

設定の追加

  • add samlconfig idpName=admin_login_idp spName=admin_login_sp groupName=groupName cfusion

設定の削除

  • delete samlconfig default cfusion

設定の詳細の表示

  • show samlconfig cfusion

設定の更新

  • set samlconfig groupName=admin_login_idp idpName=admin_login_idp spName=admin_login_sp cfusion

設定の取得

  • get samlconfig spName cfusion

設定の書き出し

  • export samlconfig saml.json cfusion

設定の読み込み

  • import samlconfig saml.json cfusion 

LDAP

設定の追加

  • add ldapconfig host=localhost port=10646 groupBaseContext="ou=Group,dc=example,dc=com" userBaseContext="ou=User,dc=example,dc=com" groupnameAttr=cn usernameAttr=cn timeout=6000 cfusion

設定の更新

  • set ldapconfig host=localhost port=10389 groupBaseContext="ou=Group,dc=example,dc=com" userBaseContext="ou=User,dc=example,dc=com" usernameAttr=uid timeout=6000 cfusion

設定の取得

  • get ldapconfig host cfusion

設定の削除

  • delete ldapconfig default cfusion

設定の書き出し

  • export ldapconfig ldap.json cfusion

設定の読み込み

  • import ldapconfig ldap.json cfusion 

ユーザー操作

ユーザーの表示

  • show user user_name

ユーザーの更新

  • set user isLdap=false

別のユーザーの追加

  • add user=user2 isLdap=true isSaml=false isGroup=true

ユーザーの削除

  • delete user user1

ユーザーの詳細情報の取得

  • get user user_name isldap

ユーザーデータの書き出し

  • export user user1details.json

ユーザーデータの読み込み

  • import user userdetails.json 

ヘルプをすばやく簡単に入手

新規ユーザーの場合

Adobe MAX 2025

Adobe MAX Japan
クリエイターの祭典

2025 年 2 月 13 日
東京ビッグサイト