7
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

API ConnectでLDAPを使ってみた

Last updated at Posted at 2017-09-21

前提バージョン

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の基本認証の設定例の紹介を終わります。

免責事項

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

7
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?