Edited at

API ConnectでLDAPを使ってみた

More than 1 year has passed since last update.


前提バージョン

IBM API Connect 5.0.6.3

Ubuntu 14.04LTS

※当記事ではVMware Workstation PlayerでAPI Connect, UbuntuがPC上に導入済みとします。


1 API Connect の認証について

API Connect では、APIの保護機能の基本機能として

①APIキー

②OAuth2.0

③基本認証

を提供します(他にもさまざまな保護機能があります)。

上記②や③ではほとんどの場合、API保護のためにユーザー認証処理を行うことになりますが、API Connect は基本的に外部の認証サーバーを用いて認証する必要があります。

この記事では、いくつかある認証方式のうちLDAP サーバーを用いた認証について紹介します。

(今回はAPI保護の設定は「③基本認証」で行います。「②OAuth2.0」のパターンでもLDAPで認証することは可能です)


1-1 ③基本認証の例

001.jpg


2 LDAP サーバーの準備


2-1 OS導入



OS : Ubuntu 14.04LTS

ホスト名 : host01

ドメイン名 : example.com


2-2 ldap導入


2-2-1 パッケージのインストール

$ sudo apt-get -y install slapd ldap-utils


2-2-2 初期設定

$ sudo dpkg-reconfigure slapd



ドメイン名 : example.com


image.png


2-2-3 base.ldif設定

$ sudo vi base.ldif

dn: ou=people,dc=example,dc=com

objectClass: organizationalUnit
ou: people
dn: ou=groups,dc=example,dc=com
objectClass: organizationalUnit
ou: groups

$ sudo ldapadd -x -D cn=admin,dc=example,dc=com -W -f base.ldif


2-3 LDAP管理ユーティリティのインストール


2-3-1 パッケージのインストール

$ sudo apt-get install phpldapadmin -y


2-3-2 config.php修正

$ sudo vi /etc/phpldapadmin/config.php

//  $servers->setValue('server','port',389);


$servers->setValue('server','port',389);

$ sudo vi /usr/share/phpldapadmin/lib/TemplateRender.php

  $default = $this->getServer()->getValue('appearance','password_hash');


$default = $this->getServer()->getValue('appearance','password_hash_custom');


2-3-3 設定の反映

$ systemctl restart apache2


2-4 グループ、ユーザーの追加

ldapadminツールで、以下のグループ、ユーザーを追加します。

http://LDAPサーバーのホスト名/phpldapadmin/index.php


2-4-1 グループの追加

cn=group01,ou=groups,dc=example,dc=com

GID=500
Group=group01
objectClass=posixGroup

image.png


2-4-2 ユーザーの追加

cn=Tarou Test,ou=poeple,dc=example,dc=com

Common Name=Tarou Test
First Name=Tarou
GID Number=500
Home Directory=/home/users/ttest
Last Name=Test
Login shell=/bin/sh
objectClass=inetOrgPerson
posixAccount
UID Number=1001
User ID=ttest

image.png


3 API Connect設定


3-1 APIConnect上の認証レジストリーの追加

API Manager ユーザーインターフェースにログイン

https://APIManagerサーバーホスト名/apim

image.png

管理を選択

image.png

ユーザーレジストリーを選択

image.png

追加をクリック

image.png

LDAPレジストリーを選択

image.png

以下を入力し、「バインドのテストと基本DNの取得」をクリック

表示名:ldapregistory01

名前:ldapregistory01

ホスト名:LDAPサーバーのIP

ポート:389

認証済みバインド

管理DN:cn=admin,dc=example,dc=com

パスワード:管理DNのパスワード


image.png

更に以下を入力し、「構成のテスト」をクリック

基本DN : dc=example,dc=com

接頭部 : (uid=

接尾部 : )


image.png

最後に接続テストするユーザー名、パスワードを入力し、「構成のテスト」をクリック

image.png

「成功 接続に成功しました」と表示されることを確認します。

image.png


3-2 基本認証で保護するAPI定義の作成

API Manager ユーザーインターフェースにログイン

https://APIManagerサーバーホスト名/apim

image.png

ドラフトを選択

image.png

APIを選択

image.png

追加→新規APIを選択

image.png

タイトル:testapi

名前:testapi

基本パス:/testapi

バージョン:1.0.0


と入力し、「APIの作成」をクリック

image.png

セキュリティー定義のセクションに移動

※デフォルトで、clientIdHeader(APIキー)による保護が設定されます。これはAPI保護の基本機能のうち、「①APIキー」に相当する設定になります。

image.png

セキュリティー定義の追加ボタンをクリック

image.png

「基本」を選択

image.png

名前 : basic01

認証に使用 : ユーザー・レジストリー

ユーザー・レジストリー : ldapregistory01


を入力

image.png

「セキュリティー」セクションで「basic01(基本)」にチェックを追加します。これにより、このAPIに対する保護として、「③基本認証」が追加されます。この設定では、「①APIキー」と「③基本認証」の両方を使って保護が行われます。

image.png

後は、「パス」セクション、「ポリシー・アセンブリー」セクションなど、API定義に必要な項目を設定し、製品に追加→デプロイします。

APIの実行時は以下のHTTPヘッダを指定してください。

・APIキー

 X-IBM-Client-Id: 開発者ポータルで発行するクライアントID

・基本認証

 Authorization: Basic 「ユーザーID:パスワード」をbase64エンコードした文字列

以上で、LDAPサーバーを使ったAPIの基本認証の設定例の紹介を終わります。


免責事項

この記事の内容は不正確である可能性があります。この記事の内容やその利用等によって生じた、いかなる損害に対しても責任は負いません。