Thursday, April 23, 2015

Alfresco勉強会#27で Alfrescoの主要機能についての紹介発表をしました

こんにちは。そうまです。

昨日、弊社オフィスにて第27回Alfresco勉強会が開催されました。

今までのAlfresco勉強会では「Alfrescoに興味はあるけど触ったことがない」という方や、「とりあえずインストールしてみたけど、何ができるのか良くわからない」という方が多かったので、今回私は「0からわかるAlfresco」というタイトルで、Alfrescoの主要機能をデモを交えザックリ紹介する発表を行いました。

ところが、こちらのBlogエントリーでも書かれているように、今回は参加者にAlfrescoを実際に使われているか、Alfrescoを詳しく知っている方が多く「発表内容の選択を誤ったかな?」と発表中は冷や汗をかいていました。

幸いなことに、主要機能を網羅するようにデモを行ったため、今まで触ったことがない機能についてのご質問のきっかけになったり、各機能の詳細なご質問に対して実際にその機能の操作を行いながら回答することができたので、本来の狙いからはズレたものの発表の意味はあったようでほっと胸を撫でおろしています。



具体的に機能を把握してもらう狙いでデモを多用しましたので、スライドだけではあっさりとした内容となっていますが、今後Alfrescoを使ってみようと思っている方は参考にしていただけると幸いです。


最後に2つおしらせがあります。

おしらせ1:

次回のAlfresco勉強会は6月24日(水)です。たくさんの方のご参加お待ちしております。参加登録は以下のリンクからお願いします。

第28回Alfresco勉強会

もちろん発表も大歓迎です。発表はできないけどこういう内容が知りたい、こんなところで困っているから教えてほしい、といった要望があればconnpassのフィードに投稿していただければと思います。


おしらせ2:

2015年4月27日(月) 19時〜20時、Alfrescoの基本的な機能や使い方についての少人数セミナーを開催いたします。
詳細や申し込み、お問い合わせは以下のリンクからお願いします。

基礎からわかるAlfrescoセミナー

ご都合が合えば、こちらもぜひご参加ください。

Alfresco勉強会#27 Alfresco Community 5.0の導入事例を発表していただきました

こんにちは。てらしたです。

昨日、第27回のAlfresco勉強会が開催されました。Alfrescoに興味はあるけどまだ触ったことはないという参加者の方が今までは多かったんですが、今回は比較的Alfrescoを使っておられる方が多く、機能の細かい挙動についての質疑応答や運用まわりの事例の話などがあり、我々としても非常に勉強になる会でした。

そして今回は2つある発表のうち1つを株式会社コーソルの渡部様に発表していただきました。渡部様の会社では技術情報を社内で共有するためにAlfresco Community 5.0を導入し、実際に稼働させているとのことで、導入背景やシステム構成、工夫した点、今の悩み等を紹介していただきました。


背景を踏まえた製品選定の話もあり、同じような課題を抱えている方には非常に参考になる情報ばかりだったと思います。個人的にはSSOや便利なアドオン、サイト設計や論理バックアップに関する要望あたりが特に興味深かったです。渡部様、本当にありがとうございました。

最後に2つおしらせがあります。

おしらせ1
次回のAlfresco勉強会は6月24日(水)です。たくさんの方のご参加お待ちしております。参加登録は以下のリンクからお願いします。

第28回Alfresco勉強会

もちろん発表も大歓迎です。発表はできないけどこういう内容が知りたい、こんなところで困っているから教えてほしい、といった要望があればconnpassのフィードに投稿していただければと思います。

おしらせ2
2015年4月27日(月) 19時〜20時、Alfrescoの基本的な機能や使い方についての少人数セミナーを開催いたします。
詳細や申し込み、お問い合わせは以下のリンクからお願いします。

基礎からわかるAlfrescoセミナー

ご都合が合えば、こちらもぜひご参加ください。

Wednesday, April 15, 2015

Liferay 6.2で動画をプレビューしよう

こんにちは。おおたにです。

この4月から娘の保育園の慣らし保育が始まったのですが、先生に「今日のお昼ご飯はうどん4杯おかわりしましたよ。この調子なら大丈夫そうですね。」と言われ、親の心配をよそに娘は娘でよろしくやっているようです。

さて、今回はLiferay 6.2で動画をプレビューするための設定方法について説明しようと思います。LiferayはDocuments and Mediaポートレットでの動画ファイルのプレビューに対応しています。デフォルトでは設定されていませんが、簡単にセットアップすることが可能です。では早速その手順を見ていきましょう。


Xugglerのインストールと動画プレビューの有効化



まず、Xugglerをシステムにインストールする必要があります。具体的にはXugglerのJavaのライブラリをコピーするだけなのですが、 Liferayはこれを自動的にダウンロードして所定のフォルダにコピーする機能を備えています。ただし、インターネット上のサイトから必要なファイルをダウンロードするため、Liferayサーバが外部のネットワークにアクセスできない場合は手動でファイルをコピーする必要があります。


  1. Liferayをインストールします。インストール方法についてはこちらのblogエントリが参考になると思います。
  2. Liferayに管理者ユーザでログインします。デフォルトではユーザ名(メールアドレス)test@liferay.com、パスワードはtestです。
  3. 画面上部の「Admin」→「Control Panel」をクリックします。
  4. 「Configuration」→「Server Administration」→「External Services」をクリックします。
  5. 「Enabling Xuggler provides video conversion functionality」欄で、インストールするjarファイルを選択します。プラットフォーム毎になっているので、Liferayをインストールした環境に応じて適切なものを選択します(下のスナップショットではLinux 64bitを選択しています)。
  6. 「Install」をクリックします。以下のサイトからプラットフォーム毎のjarファイルがダウンロードされ、以下の場所にコピーされます。

  7. URL : http://xuggle.googlecode.com/svn/trunk/repo/share/java/xuggle/xuggle-xuggler/5.4/
    コピー先 : <tomcat_dir>/webapps/ROOT/WEB-INF/lib/

     
  8. インストールが完了すると、再起動を促されるのでLiferayを再起動します。
  9. Liferay再起動後、改めて管理者ユーザでログインして「Enabling Xuggler provides video conversion functionality」を確認します。


  10. インストールが正常に行われていると、「Enabled」チェックボックスが表示されるので、チェックを入れて「Save」をクリックします。

以上で設定完了です。


テストしてみよう


では、Documents and Mediaポートレットを追加して適当な動画ファイルをアップロードしてみましょう。アップロードしたファイルをクリックして以下のような動画再生画面が表示されればテスト成功です。




トラブルシューティング


「File is too large for preview or thumbnail generation」と表示される

デフォルトでは100MBまでしかプレビュー(&サムネイル生成)できないように設定されています。設定を変更するにはportal-ext.propertiesに以下の設定を追記します(以下は上限を1GBに設定しています)。上限を変更するとシステム負荷が高まる可能性があるので設定変更の際はご注意ください。

dl.file.entry.previewable.processor.max.size=1048576000



WindowsにLiferayをインストールして動画プレビューを設定したら、Liferayがクラッシュした

既知の問題LPS-43896です。Xugglerの問題とのことで、Liferay側で対応できる類のものではないようです。動画プレビューを利用する際にはプラットフォームとしてWindows以外を選択する必要があると思われますのでご注意ください(Xugglerのバージョンを変えてみたりと多少試してみただけなのですが今の所ワークアラウンドを見つけられてないです)。


以上、とても簡単に動画プレビューが設定できることがお分かり頂けたかと思います。是非皆様もお試しください。

Friday, February 20, 2015

Alfresco勉強会#26にてAlfresco Community 5.0のSSO設定について発表しました

こんにちは。おおたにです。

先日、弊社オフィスにてAlfresco勉強会#26が開催されました。当日の様子はこちらの記事にも書いてある通りですが、当初の予報が雪だったこともあり(最終的にはほとんど降りませんでした)、いつもより参加者が少なめでした。発表は先ほどの記事の「Alfresco SDK + Eclipseで開発してみよう」と私の「Alfresco Community 5.0でSSOを設定する」の2本立てでした。

私の発表では、Alfresco Community 5.0が対応しているSSOの種類の紹介と、そのうちのHTTPリクエストヘッダパラメータから認証済みIDを取得して認証する外部認証の設定とデモを行いました。簡単に設定できるうえに、OpenAMやCAS、それ以外のプロプライエタリなSSO製品もエージェントやリバースプロキシの設定で連携できるため、実際に導入する際にも有用そうな機能です。


最後に、2点ほどお知らせをば。

お知らせ1 : 
次回、第27回Alfresco勉強会は2015/04/22(水)です。参加登録はこちらからお願いします。発表します、こういう話が聞きたいです等、どしどしフィードに書き込んでください。

お知らせ2 : 
2015/02/26(木)、弊社において「基礎からわかるAlfrescoセミナー」が開催されます。Alfrescoの基本的な機能や使い方を紹介しますので、Alfrescoってどんな製品だろう?という方は是非こちらからお申し込みください!

Thursday, February 19, 2015

Alfresco勉強会#26でAlfresco SDK + Eclipseによる開発方法について発表しました

こんにちは。てらしたです。

昨日、第26回のAlfresco勉強会が開催されました。東京でも積雪という予報が出ていたため延期すべきではないかという話も前日から当日にかけて出ていたのですが、予報が外れて雨になったため延期せずに済みました。延期されたら困る、という方も参加者の中にはいるかもしれないのでこういう時の判断って難しいですよね。もっと規模の大きい勉強会とかではどうしてるのか気になります。

さて、昨日の勉強会ではMavenベースのAlfresco SDK 2.0とEclipseを使ってAlfrescoをカスタマイズするための開発環境を準備する方法について発表しました。Alfresco SDKは2.0からJavaのクラスやJavaScript、FreeMarkerのテンプレートがホットリロードできるようになっているため、開発効率がけっこう上がるのではないかと期待しています。

発表資料:第26回Alfresco勉強会:Alfresco SDK + Eclipseで開発してみよう

今回の発表内容は開発環境を準備するところまでなので、カスタムモデル定義やWebScriptの開発といった具体的なカスタマイズ方法については今後の勉強会やこのブログでご紹介していきたいと思います。

最後にちょっとおしらせを。

おしらせ1

次回のAlfresco勉強会は4月22日(水)です。たくさんの方のご参加お待ちしております。参加登録は以下のリンクからお願いします。

第27回Alfresco勉強会

もちろん発表も大歓迎です。発表はできないけどこういう内容が知りたい、こんなところで困っているから教えてほしい、といった要望があればconnpassのフィードに投稿していただければと思います。

おしらせ2

2015年2月26日(木) 19時〜20時、Alfrescoの基本的な機能や使い方についての少人数セミナーを開催いたします。
詳細や申し込み、お問い合わせは以下のリンクからお願いします。

基礎からわかるAlfrescoセミナー

ご都合が合えば、こちらもぜひご参加ください。

Wednesday, February 4, 2015

Confidentialy: Public cloud or on-premises?

"Dropbox or on-premises, wherever your data is, the government can spy on it, so why bother?"
Actually on-premises is slightly better: At least you will KNOW that you are being spied on.


  • Public cloud: Police ask your cloud provider for the data, and you don't hear about it.
  • On premises: Police ask YOU for the data.

Data requests are most often accompanied with a gag order:
"Give us this user's data, but don't tell anyone we asked for it."

An example of this got detailed in The Guardian last week: Google, after sending some of its customers' data to the FBI, waited 3 years before telling anybody.

This is one more reason to prefer on-premises to public cloud.

Wednesday, January 28, 2015

Alfresco 5.0 で外部SSO連携を設定する(リクエストヘッダパラメータ編)

こんにちは。大谷です。

今回はAlfresco 5.0を外部SSO基盤と連携するための設定方法を紹介したいと思います。

外部SSOの仕様によって連携方法が異なりますが、今回は、認証済ユーザのリクエストヘッダに特定のパラメータを付与するパターンのSSOについてみていきます。このパターンはありがちなSSOの仕様の1つで、SSO基盤製品として標準機能で対応しているものや、エージェントと呼ばれるソフトウェアをSSO対象サーバ側にインストールして実現するもの(OpenAMもこのパターンです)などがあります。


AlfrescoでのSSO設定


では早速設定を行います。Alfrescoは2つのファイルに設定を行うだけで上記のパターンのSSOに対応できます。以下では、SSO基盤が認証済ユーザからのHTTPリクエストのリクエストヘッダに X-Test-Remote-User というパラメータでユーザ名を付与することを想定しています。

まずは毎度おなじみ alfresco-global.properties です。ここに以下の3設定を追記します。
  • authentication.chain : Alfresco認証チェーンに外部認証を追加します(external1はデフォルトで定義されている外部認証用の設定)
  • external.authentication.proxyUserName : このプロパティを空に設定することで、external.authentication.proxyHeader で指定したリクエストヘッダパラメータの値をユーザ名として利用します
  • external.authentication.proxyHeader : ユーザ名を読み出すリクエストヘッダパラメータ名を指定します(SSO基盤が認証済ユーザのリクエストヘッダに付与するパラメータ名を指定)

<tomcat_dir>/shared/classes/alfresco-global.properties
authentication.chain=external1:external,alfrescoNtlm1:alfrescoNtlm
external.authentication.proxyUserName=
external.authentication.proxyHeader=X-Test-Remote-User

続いて share-config-custom.xml の設定を行います。まずは既存の <config evaluator="string-compare" condition="Remote"> エレメントをコメントアウトし、以下の設定を追記します。インストーラでインストールした場合は、以下の設定がコメントアウトされた状態で記述されているので、以下の箇所のコメントタグを外します。

<tomcat_dir>/shared/classes/alfresco/web-extension/share-config-custom.xml
   <config evaluator="string-compare" condition="Remote">
      <remote>
         <keystore>
             <path>alfresco/web-extension/alfresco-system.p12</path>
             <type>pkcs12</type>
             <password>alfresco-system</password>
         </keystore>
         
         <connector>
            <id>alfrescoCookie</id>
            <name>Alfresco Connector</name>
            <description>Connects to an Alfresco instance using cookie-based authentication</description>
            <class>org.alfresco.web.site.servlet.SlingshotAlfrescoConnector</class>
         </connector>
         
         <connector>
            <id>alfrescoHeader</id>
            <name>Alfresco Connector</name>
            <description>Connects to an Alfresco instance using header and cookie-based authentication</description>
            <class>org.alfresco.web.site.servlet.SlingshotAlfrescoConnector</class>
            <userHeader>X-Test-Remote-User</userHeader>
         </connector>

         <endpoint>
            <id>alfresco</id>
            <name>Alfresco - user access</name>
            <description>Access to Alfresco Repository WebScripts that require user authentication</description>
            <connector-id>alfrescoHeader</connector-id>
            <endpoint-url>http://localhost:8080/alfresco/wcs</endpoint-url>
            <identity>user</identity>
            <external-auth>true</external-auth>
         </endpoint>
      </remote>
   </config>

設定のポイントは以下の2か所です。インストーラでインストールした場合は必ず以下の2か所を設定変更してください。
  • alfrescoHeaderコネクタのuserHeaderタグ : ユーザ名を読み出すリクエストヘッダパラメータ名を指定します(external.authentication.proxyHeader と同じ値を指定)
  • alfrescoエンドポイントのconnector-idタグ : alfrescoHeader を指定します(リクエストヘッダパラメータを使ったSSO認証を行うようになります)
設定は以上となります。なお、設定を反映させるためにはAlfrescoの再起動が必要です。


動作の確認


では、早速動作確認してみましょう。SSO基盤がある場合はSSO基盤の認証が通った状態でAlfrescoにアクセスしてみます。もしSSO基盤が無く、同様の状況をエミュレートする必要がある場合は、ブラウザのアドオン等を利用します。Chromeであれば、ModHeaderがお勧めです。今回の設定ではパラメータ X-Test-Remote-User からユーザ名を読み出すように設定したので、このリクエストヘッダパラメータにユーザ名(下記スナップショットではtest1)を指定しておきます。


ModHeaderのリクエストヘッダパラメータ追加画面

この状態で、http://<server name>:<port>/share にアクセスしてみましょう(ローカルPCであれば http://localhost:8080/share)。ログイン画面がスキップされ、以下のように指定したユーザのダッシュボード画面が表示されれば動作確認完了です。


Tipsとか


うまく動作しない場合は、ログを確認してみましょう。Alfresco Shareのログ出力設定に以下の行を加えると、詳細な動作状況を確認することができます。ただし、HTTPリクエストの度にログが出力されるのでログ肥大化には注意が必要です。

<tomcat_dir>/webapps/share/WEB-INF/classes/log4j.properties
log4j.logger.org.alfresco.web.site.servlet=debug

Alfresco起動時には以下のようなログが表示され、

DEBUG [org.alfresco.web.site.servlet.SSOAuthenticationFilter] [ContainerBackgroundProcessor[StandardEngine[Catalina]]] Initializing the SSOAuthenticationFilter.
DEBUG [org.alfresco.web.site.servlet.SSOAuthenticationFilter] [ContainerBackgroundProcessor[StandardEngine[Catalina]]] Endpoint is alfresco
DEBUG [org.alfresco.web.site.servlet.SSOAuthenticationFilter] [ContainerBackgroundProcessor[StandardEngine[Catalina]]] userHeader is X-Test-Remote-User
INFO [org.alfresco.web.site.servlet.SSOAuthenticationFilter] [ContainerBackgroundProcessor[StandardEngine[Catalina]]] SSOAuthenticationFilter initialised.


アクセス時には以下のようなログが表示されるようになります。

DEBUG [org.alfresco.web.site.servlet.SSOAuthenticationFilter] [http-apr-8080-exec-4] Processing request /share/page/ SID:xxxxxxxxxx
DEBUG [org.alfresco.web.site.servlet.SSOAuthenticationFilter] [http-apr-8080-exec-4] Touching the repo to ensure we still have an authenticated session.
DEBUG [org.alfresco.web.site.servlet.SSOAuthenticationFilter] [http-apr-8080-exec-4] Validating repository session for test1
DEBUG [org.alfresco.web.site.servlet.SSOAuthenticationFilter] [http-apr-8080-exec-4] Accept-Language header present: ja,en-US;q=0.8,en;q=0.6
DEBUG [org.alfresco.web.site.servlet.SSOAuthenticationFilter] [http-apr-8080-exec-4] Authentication not required, chaining ...


起動時に指定したリクエストヘッダパラメータをチェックするように設定されているか、アクセス時に適切にユーザ名を読み取っているかを確認することができます。


本記事は以上となります。比較的簡単にSSO連携設定ができることがお分かり頂けたかと思いますので、是非一度お試しください。なお、本記事はAlfresco DocumentationのExternal configuration properties、Configuring Alfresco Share to use an external ssoを参考にしています。