SE(しがないエンジニア)のブログ

IT技術ネタ(クラウド・セキュリティ周り)が中心です!他雑記(お馬さん 他いろいろ)もあり。

プリザンターを利用して LDAP 情報と連携する

プリザンターって何?から。

まだまだ、馴染みの薄いプロダクトだとは思うのですが国産オープンソース(!)の Web データベースになります。ちなみに、当ブログでも以前、セミナーに参加した記事を1本あげていたりします。

Pleasanter(プリザンター)のセミナーに参加しました on July 25 - SE(しがないエンジニア)のブログ

競合製品としてはお高いところでいうと「Salesforce」になるのですが中小企業でそれなりのユーザで利用するには手が届かず。またはお手頃なところでいうと「kintone」になるのですがこれも総額で考えると決して安くはない。かつ、カスタマイズも痒い所に手が届く、までは行かない感じで。(自分が知らないだけかも。。)

そんなこんなで今年5月の見本市で見つけたのがこの「Pleasanter(プリザンター)」でした。前述の通りOSSなのでベースは無料、ノーサポートでも構わないなら基本は完全無料!という恐るべきプロダクトです。しかも、OSSということもあり、C#で開発されたソースが github に上がっているから驚き。

GitHub - Implem/Implem.Pleasanter: Pleasanter | Business application platform

(注)C#はコア部分なので改造してしまうとサポートが受けられません

プリザンターのいいところ

・基本的なテーブル構成(単純な表)を作成するだけであればノーコードで対応可能

➡kintone もそれをウリとしていますが私感ではプリザンターの方がとっつきやすかったです

・(Excelと比較したらですが)読込がとにかく早い!

➡全てが Excel のシステムで集計しているとファイルの Open・Close のオーバヘッドが凄い・・・・。(今時なら PowerApps とか別のものを使うのでしょうが。。)

APIが豊富で他システムとの連携が可能

➡自社の場合は勤怠管理の為に Pittouch Pro 2 というタイムカードの機械と連携させてます(Pittouch でスキャン→PHP実行→Pleasanter のAPI実行)

・多少のカスタマイズ(力技も可能?)であれば jQuery を利用した「スクリプト」と CSS を利用した「スタイル」で変更可能

JavaScript が分かるユーザであれば単純な表にとどまらないカスタマイズが可能です

プリザンターのうーんなところ

・ポータルトップページ機能やバッジ機能など利用するユーザを基軸にしたページ構成にしてほしい(強く望みます。笑)

➡かなり利便性が高まると思います

・まだまだ発展途上というところもあり、細かいところで痒い部分に手が届かない。

Github に上がっているドキュメントだけでは把握できない仕様もあります

本題の LDAP 情報の同期

社内に Active Directory を構築している場合は LDAP 情報と連携可能です。設定につまずくところがあると思うのでサンプルとして情報共有します。なお、パラメータ設定値の仕様は下記URLに記載されております。

パラメータ設定:Authentication.json · Implem/Implem.Pleasanter Wiki · GitHub

{
    "Provider": "LDAP+Local",
    "ServiceId": null,
    "ExtensionUrl": null,
    "RejectUnregisteredUser": false,
    "LdapParameters": [
        {
            "LdapSearchRoot": "LDAP://(servername + domainname)/dc=(domain),dc=(domain)",
            "LdapSearchProperty": "sAMAccountName",
            "NetBiosDomainName": "(netbios domain name)",
            "LdapTenantId": 1,
            "LdapDeptCode": "departmentNumber",
            "LdapDeptCodePattern": null,
            "LdapDeptName": "department",
            "LdapDeptNamePattern": null,
            "LdapUserCode": "employeeNumber",
            "LdapUserCodePattern": null,
            "LdapFirstName": "givenName",
            "LdapFirstNamePattern": null,
            "LdapLastName": "sn",
            "LdapLastNamePattern": null,
            "LdapMailAddress": "mail",
            "LdapMailAddressPattern": null,
            "LdapSyncPatterns": [
                "(&(ObjectCategory=User)(ObjectClass=Person))"
            ],
            "LdapExcludeAccountDisabled": true,
            "AutoDisable": true,
            "AutoEnable": true,
            "LdapSyncUser": "(ex) Administrator)",
            "LdapSyncPassword": "(administrator password)"
        }
    ]
}

書き換える部分はそこまで多くないと思います。例で「test.local」(+サーバ名は「server」とする)のようなドメインの場合。

 

Provider … 「LDAP+Local」とすることによりLDAP認証で失敗した場合にローカルユーザでの認証になります

LdapSearchRoot … LDAP://SERVER.test.local/dc=test,dc=local となります

NetBiosDomainName … TEST となります

LdapSyncUser … 基本は Domain Admins の権限を持つメンバー?

LdapSyncPassword … 「LdapSyncUser」で設定したユーザのパスワード

 

その他は環境によりけりなので最低限、というレベルではありますがお役に立てましたら。あとは、設定後に IIS を再起動して下記のような環境に合わせたURLにアクセスすれば問題ありません。

http://ServerName/pleasanter/users/syncbyldap