[K2 SmartForms] – เรื่องเกี่ยวกับ Authentication

สวัสดีครับ คราวนี้กลับมาด้วยเรื่องที่เกี่ยวกับ Authentication ของ K2 SmartForms กันบ้าง คำถามหลักๆ ที่เคยเจอจะมี 2 ส่วนคือ

  1. อยากเปลี่ยนให้ K2 SmartForms ไปใช้ form authentication ได้อย่างไร
  2. ถ้าอยากเพิ่ม site ที่ใช้งาน K2 SmartForms จะต้อง set อะไรบ้าง

 

ก่อนจะเริ่มตอบคำถามเราต้องไปรู้จักหน้า configuration ของ K2 ก่อน โดยหน้า configuration ของ K2 SmartForms จะอยู่ใน site K2 Designer ใน folder System => Management => Security => Forms

01-System Category

 

มาถึงคำตอบแรกคือ ถ้าอยากเปลี่ยนไปใช้ form authentication เราต้องเข้าไปที่ forms “Manage Issuers”

02-Issuers

เปิดมาแล้วให้เลือก Issuers ที่ชื่อ “K2 Forms STS” จากนั้นเลือก checkbox “Use For Login” กดปุ่ม “OK” เพื่อ save จากนั้นเปิด form “Manage Site Realms”

03-Site Realm

เมื่อเปิดแล้ว จะมี url ที่มีทั้งหมดในระบบให้เลือก ให้เลือก url ที่เราจะ set ให้เปิด form authentication ได้ขึ้นมา และเลือก Issuers ที่เป็น “K2 Forms STS”

04-Forms STS

เมื่อ save เรียบร้อยแล้ว ให้ restart K2 service และ reset IIS จากนั้นเข้า site เพื่อดูผล ในกรณีที่เราเลือกทั้ง “K2 Forms STS” และ “K2 Windows STS” จะมีให้เลือกว่า จะใช้ Issuer ไหนในการ login  ถ้าเราเลือกเป็น “K2 Windows STS” ก็จะ login เข้าไปด้วย credential ของ user ที่เรา login windows แต่ถ้าเลือก “K2 Forms STS” จะโดน redirect ไปที่หน้า form authen

05-Selection

06-Form Authen

 

ถ้าใน K2 SmartForms version เก่า (เท่าที่จำได้จะต้องเก่ากว่า 4.6.9 นะครับ) จะไม่ได้ใช้วิธีนี้ ให้ใช้วิธีใน link นี้แทนครับ http://help.k2.com/onlinehelp/k2smartforms/userguide/1.0.6/default.htm#authentication.html

 

มาถึงคำถามที่สองกันบ้าง คำถามที่สองปกติจะเจอเมื่อเรามีการ set ให้สามารถ access web ของ smartforms ได้จากหลาย url เช่น เราทำ load balance อาจจะเข้าด้วยชื่อ url ของ load balance หรือเข้าด้วยชื่อ url ที่กำหนดไว้แทนที่จะเป็นชื่อเครื่อง K2  ถ้าเป็นในกรณีนี้ สิ่งที่ต้องทำคือ ไปเพิ่ม url ในหน้า “Manage Site Realms” โดยสิ่งที่จะต้องใส่เป็นไปตามด้านล่าง

07-New Realms

  • URI – ให้ใส่เป็น url เต็มจนถึง site ของ K2 (และใส่ “/” ต่อท้ายด้วย) ซึ่งจะมีอยู่ 3 แบบคือ Designer, Runtime และ ViewFlow ขึ้นกับว่า เป็น url ของอะไร
  • Reply URI – ใส่เป็น “/Designer/”, “/Runtime/” หรือ “/ViewFlow/” ขึ้นกับว่า URI ด้านบนเป็นอะไร
  • Home Realm – ไม่ต้องใส่
  • Linked Issuers – เลือก Issuers ที่จะใช้ในการทำงานกับ url นี้

ถ้าเราใส่ข้อมูลครบ ก็จะสามารถ access url ที่ต้องการผ่าน browser ได้ตามที่ต้องการครับ โดยข้อมูลที่เรา setting ในหน้านี้จะถูกเก็บอยู่ใน table ชื่อ “Identity.ClaimIssuer”, “Identity.ClaimRealm”, “Identity.ClaimRealmIssuer” ที่ต้องบอกที่เก็บข้อมูลใน database ไว้เป็นเพราะว่า ถ้าเราเผลอแก้ url ของ site designer ผิด เราจะไม่สามารถเข้ามาใช้งานหน้าจอในส่วนนี้ได้ (ยกเว้นจะจำ url runtime ได้) ดังนั้นการเปลี่ยนข้อมูล site realm และ issuers จะต้องใช้ความระมัดระวังเป็นอย่างมาก เพราะถ้าแก้ผิด เราจะต้องเข้าไปใส่เองใน database อย่างเดียวครับ หวังว่า blog คราวนี้จะทำให้เข้าใจการทำงานในส่วน authentication ของ SmartForms มากขึ้นนะครับ

 

Advertisements

11 thoughts on “[K2 SmartForms] – เรื่องเกี่ยวกับ Authentication

  1. 4.6.11 have to change edit web.config from “trust\login.aspx” to “login.aspx” for both designer(in case that you want to enable login in designer) and runtime

    Like

  2. ผมลองทำตามดูแล้วทั้งแบบ from sts, windows sts หรือ เลือกทั้งสองอย่าง หลังจาก restart IIS , k2 black pearl server แล้วลองเข้าจาก k2 designer ที่ url ของทั้งแบบ designer หรือ runtime ก็ยังไม่มีการ redirect ไปที่หน้า form authen เลยครับ ปัญหานี้เกิดจากอะไรครับ

    Like

    1. ลองไปตรวจสอบ web.config ของ site designer และ runtime ดูครับ ว่า authentication mode set เป็น Forms Authentication หรือเปล่าครับ? ถ้า set เป็น Forms อยู่แล้วก็จะใช้งานได้ครับ แต่ถ้า set เป็น Windows Authentication จะใช้ไม่ได้ครับ

      Like

  3. แล้วถ้าไม่ต้องการให้มีการ Authentication ใดๆเลย(ไม่ต้องมี popup authen ด้วย) โดยจะให้ยึดเอาจาก Windows Log-In เท่านั้น จะทำได้ไหมครับ

    Like

    1. ถ้า set เป็น Windows STS จะเป็นอย่างนั้นอยู่แล้วครับ ยกเว้นเรา set ที่ browser ให้ถาม username password ทุกครั้ง กับเครื่องที่ไม่ join domain ก็จะขึ้นถามตลอดครับ

      Like

  4. ระบบผมจะไม่ใช้เป็น window authen แต่เป็นรหัส Login ต่างหาก โดยจะทำการ Login ผ่านหน้าจอที่ทางผมทำขึ้นเอง ปัจจุบันหลังจาก Login ผ่านหน้าจอที่ผมทำแล้วมันจะให้ login ระบบ K2 อีกครั้ง ไม่ทราบพอจะมีวิธีไม่ให้มัน login อีกครั้งมั้ยครับ

    Like

    1. ถ้าอยากทำอย่างที่ว่า ต้องสร้าง cookies ให้ K2 ครับ ลองดูตัวอย่างในนี้ได้ครับ ในนี้มีอธิบายการทำ single sign on ระหว่าง K2 กับ SharePoint แบบ form based อยู่ https://peterblommendaal.wordpress.com/2013/01/23/k2-smartforms-and-sharepoint-single-sign-on/

      Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s