¢x ½s¿è«Ç ¢x »O¤j­º­¶ ¢x ­p¤¤­º­¶ ¢x
²Ä0026´Á ¡E 2013.09.20µo¦æ
ISSN 2077-8813
¾ú¥v¦^ÅU ­q¾\/¨ú®ø ®Õ°ÈªA°È ±MÃD³ø¾É   §Þ³N½×¾Â ±ÀÂË¥Zª«
­º­¶ > ±MÃD³ø¾É
±MÃD³ø¾É

«Ø¸m¤@­Ó¦³¼u©Ê¤S¨ã³ÆHA¬[ºcªºADFSªA°È

§@ªÌ¡G³¯¬fîÚ / ­pºâ¾÷¤Î¸ê°Tºô¸ô¤¤¤ß§@·~ºÞ²z²Õ·F¨Æ

³æ¤@»{ÃÒñ¤J(Single Sign On)ªº¬[ºc¾É¤J«á¡A»{ÃÒªA°ÈªºÃ­©w«×´NÅܪº¬Û·í­«­n¡AADFSªA°È¬°¨ä¤¤ªº¤@­ÓÃöÁäªA°È¡A¦p¦ó«Ø¸m¤@­Ó¦³¼u©Ê¤S¦³°ª¥i¥Î«×ªºADFS´NÅܪº«Ü­«­n¡A¥»¤å ±N¤¶²Ð¦p¦ó«Ø¸m¤@­Ó°ª¥i¥Î«×ªºADFS Farm Service¡C

 ADFS¬OADªºFederation Service¡A¥D­n´N¬OÅý¥~³¡ªºªA°È¥i¥H³z¹LFederation Service¥D¾÷¨Ó§Q¥ÎAD¶i¦æÅçÃÒ¡A¶i¦Ó¹F¨ìSingle Sign Onªº¥Ø¼Ð¡A¬°Windows Server¸Ì­±ªº¤@­Ó¨¤¦â¡C

³oÃ䲳檺¸ÑÄÀ¤@¤UADFS¬O¦b°µ¤°»òªº¡A¥H»O¤j¨Ó»¡¡A±q¦Û¦æ¶}µoªº®Õ°È¨t²Î¡B¹q¤l¶l¥ó¡BµL½uºô¸ô¤Î¶³ºÝªA°È¡A¥[¤W©e¥~ªº¨t²Îµ¥¡A³£»Ý­n¶i¦æµn¤JªÌªº¨­¤ÀÅçÃÒ¡A³o­Ó¨­¤ÀÅçÃÒ¾÷¨î¥²¶·¬O¦w¥þ¦Ó¥B³q¥Î¡C

³Ìª½±µªºÅçÃҤ覡´N¬O¨C¤@­Ó¨t²Î³£«Ø¥ß¤@­Ó§t¦³¨Ï¥ÎªÌ±b¸¹¤Î±K½Xªº¸ê®Æ®w¥H¨Ñ¬d¸ß¡A¦ý»O¤jªº±b¸¹Ãþ«¬¹ê¦b¤Ó¦h¡A¥ú¬O¾Ç¥Í¥[¤W±Ð¾­û¤uªºÃþ«¬©Mª¬ºA´N¤£¤U¼Æ¤QºØ¡AÁÙ¦³¤H­ûªº²§°Ê¡B±K½XªººÞ²z¡A³o¨Ç¦]¯À·|¾É­P±b¸¹ºÞ²zªº¦¨¥»·|«D±`°ª¡C­Y¦Ò¼{¾ã¦X¡A«h»O¤j¤º³¡¥i¦@¥Î¤@­Ó¸ê®Æ®w¡A¦ý¥~³¡ªº¨t²Î©O¡H

³o®ÉADFS´N¬£¤W¥Î³õ¤F¡AADFSªººë¯«´N¦b©ó¥~³¡ªºA¨t²Î¥i¥H¸òB¨t²Î«Ø¥ß«H¥ôÃö«Y¡A·íBªº¨Ï¥ÎªÌ­n¦bA¨t²Îµn¤J®É¡A·|­«·s¾É¦V¨ìBªº»{ÃÒ¨t²Î¶i¦æÅçÃÒ¡A­YÅçÃÒ³q¹L¡A´N¥i¥H¨Ï¥ÎAªºÀ³¥Î¨t²Î¡A¾ã­Ó¹Lµ{´N¦b©óAªºÀ³¥Î¨t²Î«H¥ôBÅçÃÒ¥L¦Û¤vªº¨Ï¥ÎªÌ¡C

ADFSªº¬[ºc¥iµø±¡ªp¦p¥H¤U¤è¦¡³W¹º¡G

¡@

¥»¤å­n½Íªº¬O¦p¦ó«Ø¥ß¤@­Ó¨ã¦³®e¿ùªºADFS Farm¬[ºc¡A¤]´N¬O¤W¹ÏªºÂŦⳡ¤À¡A¨ãÅ骺Àô¹Ò·Ç³Æ¦p¤U¡G

  • ADFS¥D¾÷¡GWindows Server 2012 Standard¨â³¡¥H¤W¡A«Øij¥ÎVM(°µ¿ù¥Î§Ö·Ó¦^´_¤ñ¸û¤è«K)¡A½Ð¥ý¥[¤Jºô°ì¡C
    • ½Ð¦b¨ä¤¤¤@¥x¦w¸ËSQL Server Management Studio¡A¦]¬°»Ý­n¥Î¨ìsqlcmd³o­Ó¤p¤u¨ã¡C
  • ¸ê®Æ®w¥D¾÷¡GWindows SQL Server 2012¡A¥HCluster¤è¦¡«Ø¸m¡C

¨ãÅé­n°µªº¨Æ±¡¬°¥H¤U¤T¶µ¡G
(1) ·s¼WADFS¨¤¦â
(2) ±NConfigurationÀÉ®×¥ÑInternal Database·h¦ÜSQL Server
(3) ±N¨ä¾lADFS¥D¾÷¥[¤J¦P·ù¦øªA¾¹

³oÃä»Ý¸ÑÄÀ¬°¤°»ò­n§âConfiguration¸ê®Æ·h¨ìSQL Server¡A¦]¬°¹w³]ªºADFS Configuration¸ê®Æ¬O©ñ¦bWIDªº¡A´N¬OWindows Internal Database¡A¬°¤@­Ó¤º«Øªº¤p¸ê®Æ®w¡A¦ý©ñ¦bWID·|¦³¤@¨Ç­­¨î¡A©x¤èªº¸ÑÄÀ¦p¤U¡G

  • No more than five federation servers should be added to a federation server farm deployment. If you need more federation servers to support higher performance in farm deployment, use SQL Server instead.
  • No more than 100 trust relationships of the same type (either claims provider trusts or relying party trusts) can be supported. For example, you can have up to 100 claims provider trusts and 100 relying party trusts with a Windows Internal Database deployment, but to exceed this number for either category of trusts, use SQL Server instead.
    (°Ñ¦Ò¥X³B¡Ghttp://technet.microsoft.com/en-us/library/gg557750(v=ws.10).aspx)

²Ä¤@ÂIÁÙ¦n¡A´N¬O¤£¯à©ñ¶W¹L¤­¥x¦P·ù¦øªA¾¹¡A°£«D¬O«D±`¤jªº³W¼Ò»Ý­n¶W¹L¤­¥x¡A¤£µMÀ³¸Ó°÷¥Î¡A¦ý¬O²Ä¤GÂI´N¤ñ¸û³Â·Ð¡A¤£¯à¶W¹L¤@¦Êµ§ªº«H¥ôÃö«Y¡A¤@­Óºô§}¶i¨Ó¶i¦æ»{ÃÒ¡A´Nºâ¤@­Ó¡A²{¦b¨ä¹ê¤£ºÞ­þ­Ó³æ¦ì¡AÀ³¥Î¨t²Î³£«D±`¦h­Ó¡A¤@¦Êµ§«H¥ôÃö«YªÖ©w¬O¤£°÷¥Îªº¡A¬°¤F¥¼¨ÓªºÂX¥R©Ê¡A¥u¦n±Ë±ó¥ÎWID¤F¡C

±µ¤U¨Ó´N¬O¹ê°µ¤F¡A¸Ô²Óªº¨BÆJ°O¸ü¦p¤U¡G

Step.0 ¥ý¦bADFS¥D¾÷¤W¦w¸ËADFS¨¤¦â
-----------------------------------------------------------------------------------------------------------------------------------
¥H¹w³]ªº¤è¦¡¨Ó¦w¸Ë«h«Ü§Ö´N¥i¥H¦w¸Ë§¹²¦¡A¸Ë¦nªº·í¤U´N·|´£¥Ü§A¥i¥H§âADFS²Ä¤G¥x¡B²Ä¤T¥x¥[¶i¥hÅý¥LÅܦ¨¤@­Ó¦P·ù¡A¥i¥H¦P®É´£¨Ñ°ª¥i¥Î©ÊªºªA°È¡A§Ú­Ì¶i¦æ¥Ü½dªºÀô¹Ò¬OServer 2012¡A¥¦¤ñ2008 R2²³æ«Ü¦h¡A¦]¬°2008R2¹w³]¬OADFS 1.0¡A¥²¶·¥t¥~¿W¥ß¸ËADFS2.0¡AServer 2012´N¦n¦h¤F¡Aª½±µ¤º«Ø2.0¡C

¡@

Step.1 ±NADFSªºªA°È°±¤î¡A¨Ã±N¸ê®Æ®wÀɮרø¸ü¨Ã·h¥X
-----------------------------------------------------------------------------------------------------------------------------------
¶}±Ò¤uµ{®vªº¦nªB¤Í Command Prompt¡A°O±o­n«ö¥kÁä"¥H¨t²ÎºÞ²z­û¨­¤À°õ¦æ"¡AµM«á¿é¤J¡G

net stop adfssrv

§âADFSªºªA°È°±±¼¡A¨S¦³¥Î¨t²ÎºÞ²z­û¨­¤À´N·|¦s¨ú³Q©Ú¡A¨ä¹êª½±µ¥hªA°ÈÃö±¼¤]¬O¥i¥H¡A¦ý¤uµ{®v¥Î¥´«ü¥Oªº¤è¦¡¥i¥H§ó¥[ªí²{¥X±M·~«×¡C

±µ¤U¨Ó­n§âWID¤W­±ªº¸ê®Æ®w¥ý¨ø¸ü¡A¥´¶}PowerShell¡A¿é¤J¥H¤U«ü¥O¡G

sqlcmd -S \\.\pipe\MICROSOFT##WID\tsql\query
use master
go
sp_detach_db 'adfsconfiguration'
go
sp_detach_db 'adfsartifactstore'
go

·L³n¦bServer 2012§âWIDªº¥Ø¿ý§ï¤F¡A¦pªG¦U¦ì¦³¥hGoogle´N·|µo²{¡A¥H¤U¬O®t§O ³B¡G

Server 2008R2:
sqlcmd -S \\.\pipe\MSSQL$MICROSOFT##SSEE\sql\query

Server 2012:
sqlcmd -S \\.\pipe\MICROSOFT##WID\tsql\query

¦pªG§A¦b2012°õ¦æ¡A·|µo²{¤U«ü¥O®Ú¥»¨S¤ÏÀ³¡A¦]¬°¸ô®|¤w¸g´«¤F¡A¥H«e¬O¦bC:\Windows\SYSMSI\SSEE\MSSQL.2005\MSSQL\Data
²{¦bªº¸ô®|¤w¸g§ï¨ì¤FC:\Windows\WID\Data¤U­±¡A¥Ñ¦¹¥i¨£¡A«Ü¦h«ü¥O³£­n­«§ä¡A¤£µM¤@©w·|±`±`¸I¾À¡C
¡@

Step.2 §â¸ê®Æ®wÀɮײ¾°Ê¨ì SQL SERVER¸ê®Æ®w¥D¾÷¤U
-----------------------------------------------------------------------------------------------------------------------------------
¨ø¸ü¤F¤§«á¡A¨ìC:\Windows\WID\Data¤U¡A§â¨â­Ó¸ê®Æ®wÀɮ׸ò¨â­ÓLOGÀÉ

Ć adfsconfiguration.mdf
Ć adfsconfiguration_log.ldf
Ć adfsartifactstore.mdf
Ć adfsartifactstore_log.ldf

³o¥|­ÓÀɮ׽ƻs¨ìSQL Server©ñ¸ê®Æ®wÀɮתº¥Ø¿ý¤U¡A¦ý¨ä¹ê­n©ñ­þ¸Ì³£¥i¥H¡A¸ò¨ä¥LMDF©ñ¦b¤@°_¤]¥i¥H¡C
¡@

Step.3 §âADFSªº¸ê®Æ®w¦bSQL Server±¾¸ü°_¨Ó
-----------------------------------------------------------------------------------------------------------------------------------
³Â·Ð¥´¶}DBAªº¦nªB¤Ísqlcmd¡A¿é¤J¥H¤U«ü¥O¡G

sqlcmd -S \\.\pipe\MICROSOFT##WID\tsql\query
use master
go

sp_attach_db 'adfsconfiguration', 'F:\MSSQL11.MSSQLSERVER\MSSQL\DATA\adfsconfiguration.mdf', 'F:\MSSQL11.MSSQLSERVER\MSSQL\DATA\adfsconfiguration_log.ldf'

go

sp_attach_db 'adfsartifactstore', 'F:\MSSQL11.MSSQLSERVER\MSSQL\DATA\adfsartifactstore.mdf', 'F:\MSSQL11.MSSQLSERVER\MSSQL\DATA\adfsartifactstore_log.ldf'

go

alter database AdfsConfiguration set enable_broker with rollback immediate

go

*¸Ì­±ªº¸ô®|´N¬O§A©ñ mdf Àɸò ldf Àɪº¦a¤è³á

¦¨¥\ªº¸Ü¡A´N¥i¥H¦b§AªºSQL Server¤U­±¬Ý¨ìconfiguration¸òartifactstore¸ê®Æ®w¤F¡C

¡@

Step.4 §âADFSªº Configuration¸ê®Æ®w³]©w¤Á¨ìSQL Server
-----------------------------------------------------------------------------------------------------------------------------------
°µ¤F³o­Ó¨BÆJADFS¤~·|¥h¦s¨úSQL Serverªº¸ê®Æ®w ½Ð¥Î¨t²ÎºÞ²z­û¨­¤À°õ¦æPowershell¿é¤J¡G

$temp=GEt-WmiObject -namespace root/ADFS -class SecurityTokenService
$temp.ConfigurationdatabaseConnectionstring="data source=yourdatasource;initial catalog=adfsconfiguration;User ID=username;Password=password;"
$temp.put()


*¸Ì­±ªºdata source½Ð¨Ì·Ó§Aªº¸ê®Æ®w¦WºÙ³]©w

³oÃä°O¦í¤@©w­n¡u¥H¨t²ÎºÞ²z­û¨­¤À°õ¦æ¡v¡A¤£µM³Ì«á$temp.put()·|¦^¶Ç¤F¤@­ÓµL®Ä­È0¡A¨ä¹ê´N¬OÅv­­¤£¨¬¡C

¡@

Step.5 ±Ò°ÊADFSªA°È
-----------------------------------------------------------------------------------------------------------------------------------
¥H¨t²ÎºÞ²z­û¨­¤À°õ¦æ Command Prompt¡A¿é¤J

net start adfssrv

¥i¥H±Ò°Ê¥Nªí§A­è­è¤Á´«¦³¦¨¥\¡C

¡@

Step.6 §âADFSªºartifactstore dbconnection³]©w¤Á¨ìSQL Server
------------------------------------------------------------------------------
°O±o§Ú­Ì­è­è²¾Âà¤F¨â­Ó¸ê®Æ®w¶Ü¡H²{¦b­n§â¥t¥~¤@­Ó³]©w¤]¤Á¹L¥h¡A½Ð¥Î¨t²ÎºÞ²z­û¨­¤À°õ¦æPowershell ¿é¤J¡G

Add-pssnapin microsoft.adfs.powershell
Set-adfsproperties ¡Vartifactdbconnection ¡§data source=DATASOURCE; initial catalog=adfsartifactstore;integrated security=true¡¨

*¸Ì­±ªºdata source½Ð¨Ì·Ó§Aªº¸ê®Æ®w¦WºÙ³]©w

¡@

Step.7 ­«·s±Ò°ÊADFSªA°È
-----------------------------------------------------------------------------------------------------------------------------------
¥H¨t²ÎºÞ²z­û¨­¤À°õ¦æ Command Prompt¡A¿é¤J

net stop adfssrv
net start adfssrv


¦¨¥\ªº¸Ü¥Nªí¨â­Ó¸ê®Æ®w³£¤Á´«¨ìSQL Server¤F¡C

¡@

Step.8 §âADFS Server¥[¤J¦P·ù¦øªA¾¹
-----------------------------------------------------------------------------------------------------------------------------------
­è­è¥u°µ¤F²Ä¤@¥x¡A²{¦b­n§â¨ä¥L´X¥x¤]¥[¶i¥h¦P·ù¦øªA¾¹
½Ð½T©w¥H¤U¨Æ±¡³£·Ç³Æ¦n¤F¡G

  1. ¦³¥[¤Jºô°ì
  2. ADFS¨¤¦â¦w¸Ë§¹²¦
  3. ADFS¾ÌÃÒ¦³import¶i¥h¥B¬O¥¿±`ªº
  4. ¦bIIS¤¤§âADFS¥Îªº¾ÌÃÒôµ²¨ì Default Web Siteªº443 PORT

²Ä¤TÂIªº·N«ä¬O¡A§A­n¦b¾ÌÃÒºÞ²z¸Ì­±¬Ý¨ì¾ÌÃÒ¬O¨S¦³°ÝÃDªº¤~ OK¡C

²Ä¥|ÂI¨S¦³°µ¦nµ¥¤@¤U¥[¤J¦P·ù¦øªA¾¹·|¦³Äµ§i¥X²{¡C


¡@

¦pªG§âConfiguration¸ê®Æ·h¨ìSQL Serverªº¸Ü¡A´N¤£¯à¥ÎºëÆF¥[¤J¦P·ù¡A¤@©w­n§Q¥Î«ü¥O¤è¦¡¨Ï¥ÎADFS¥Ø¿ý¤UªºFsConfig.exe¸Ì­±ªºJoinSqlFarm«ü¥O¤~¥i¥H¥[¤J¡A½Ð¥ÎºÞ²z­û¨­¤À¥´¶}Command Prompt¡A¨ìADFS©Ò¦bªº¥Ø¿ý¤UC:\Windows\ADFS¿é¤J¡G

FsConfig.exe JoinSQLFarm /ServiceAccount DomainName\AccountName /ServiceAccountPassword Password /SQLConnectionString "data source=YourDataSource;initial catalog=adfsconfiguration;User ID=username;Password=password;"

*¬õ¦â³¡¤À¬O¨Ì·Ó§Aªº±b¸¹¶ñ¤J¡A¸Ì­±ªºdata source½Ð¨Ì·Ó§Aªº¸ê®Æ®w¦WºÙ³]©w

¦pªG¤§«e¨S¦³¦b IIS §â¾ÌÃÒôµ²¦¨¥\ ·|¦³¥H¤U¿ù»~µe­±¡G

¦¨¥\ªº¸Ü´N¹³¥H¤U³o¼Ë¡G

±µ¤U¨Ó´N§â³Ñ¤Uªº ADFS ¥D¾÷¤@¤@¥[¤J¡A´N¤j¥\§i¦¨¡C¤§«á´N¥i¥H³]©wNLBÅý¼Æ»OADFS¥D¾÷¶i¦æLoad Balance¡A³o¼Ë´N¦³°ª¥i¥Î©Ê¤F¡C

¦pªG°µªº¶¶§Qªº¸Ü¡A¨ä¹ê¤j·§¤@¤p®É¤º´N¥i¥H«Ø¸m§¹¦¨¡A¦ý¤¤¶¡¹Lµ{¨ä¹ê«Ü®e©ö¸I¾À¡A¦pµ§ªÌ²Ä¤@¦¸°µ¤j·§ªá¤F¥|­Ó¤p®É¥ª¥k¡C¸I¾Àªº¸Ü¤]¨SÃö«Y¡A¨ä¹ê´N¬O¦h¸Õ¤@¤U´N¥i¥H¤F¡A¼W¥[¸gÅç­È¤]¬O¤£¿ùªº¡A§Æ±æ¤j®a³£¦³¤@­Ó«Üí©wªºADFSªA°È¡C

ª©Åv©Ò¦³ © °ê¥ß¥xÆW¤j¾Ç­pºâ¾÷¤Î¸ê°Tºô¸ô¤¤¤ß AllRights Reserved.
¹q¸Ü¡G02-33665022 ©Î 3366-5023 ¶Ç¯u¡G 02-23637204
ŪªÌ·N¨£«H½c¡Gntuccepaper@ntu.edu.tw
¦a§}¡G10617 »O¥_¥«Ã¹´µºÖ¸ô¥|¬q¤@¸¹
«Øij³Ì¨Î¿Ã¹õ¸ÑªR«× 1024*768