Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
΢·þÎñ·ÃÎʰ²È«Éè¼Æ·½°¸È«Ì½Ë÷
 
  3698  次浏览      27
 2018-5-21 
 
±à¼­ÍƼö:
±¾ÎÄÀ´×ÔÓÚsegmentfault £¬±¾ÎÄÓë´ó¼Ò·ÖÏíÁ˹ØÓÚ΢·þÎñ·ÃÎʰ²È«Éè¼Æ·½°¸µÄ̽Ë÷Óëʵ¼ù¡£

ÎÒÃÇÊ×ÏÈ´Ó´«Í³µ¥ÌåÓ¦Óüܹ¹ÏµķÃÎʰ²È«Éè¼ÆËµÆð£¬È»ºó·ÖÎöÏÖ´ú΢·þÎñ¼Ü¹¹Ï£¬·ÃÎʰ²È«Éæ¼°µÄÔ­Ôò£¬½Ó×ÅÌÖÂÛĿǰ³£Óõļ¸ÖÖ΢·þÎñ¼Ü¹¹ÏµķÃÎʰ²È«Éè¼Æ·½°¸¡£×îºó£¬ÏêÎöSpring Cloud΢·þÎñ¼Ü¹¹ÏÂÈçºÎ½â¾ö·ÃÎʰ²È«µÄÎÊÌâ¡£

Ò»¡¢´«Í³µ¥ÌåÓ¦ÓõķÃÎʰ²È«Éè¼Æ

ÉÏÃæµÄʾÒâͼչʾÁ˵¥ÌåÓ¦ÓõķÃÎÊÂß¼­¡£Óû§Í¨¹ý¿Í»§¶Ë·¢³öhttp»òÕßhttpsÇëÇ󣬾­¹ý¸ºÔؾùºâºó£¬µ¥ÌåÓ¦ÓÃÊÕµ½ÇëÇó¡£½Óמ­¹ýauth²ã£¬½øÐÐÉí·ÝÑéÖ¤ºÍȨÏÞÅú×¼£¬ÕâÀһ°ã»áÓиúºó¶ËÊý¾Ý¿âµÄ½»»¥¡£Í¨¹ýºó£¬½«ÇëÇó·Ö·¢µ½¶ÔÓ¦µÄ¹¦ÄÜÂß¼­²ãÖÐÈ¥¡£Íê³ÉÏà¹Ø²Ù×÷ºó£¬·µ»Ø½á¹û¸ø¿Í»§¶Ë¡£

´«Í³µ¥ÌåÓ¦ÓõķÃÎʰ²È«Éè¼Æ¡ª¡ªÔ­Ôò

´ÓÒÔÉÏ·ÖÎö¿ÉÒÔ¿´µ½£¬´«Í³µ¥ÌåÓ¦ÓõķÃÎʰ²È«Éè¼ÆÔ­ÔòΪ£º

µÚÒ»£¬Ã¿´ÎµÄÓû§ÇëÇó¶¼ÐèÒªÑéÖ¤ÊÇ·ñ°²È«£¬ÕâÀï¿ÉÒÔ·ÖÁ½ÖÖÇé¿ö£º

Ò»ÖÖÊÇûÓÐsessionµÄÇëÇó£¬ÐèÒª¾­¹ý¼¸¸ö²½ÖèÍê³Ésession»¯¡£Ò»°ãΪÑéÖ¤µ±Ç°Óû§µÄcredential£¬»ñÈ¡µ±Ç°Óû§µÄidentity£¬ÕâÁ½²½¶¼ÐèÒª·ÃÎÊÊý¾Ý¿âµÈ³Ö¾Ã»¯¶ÔÏóÀ´Íê³É£¬×îºóÒ»²½ÊÇΪµ±Ç°¿ÉÓô´½¨session£¬·µ»Ø¸ø¿Í»§¶Ëºó£¬ÆôÓøÃsession¡£

ÁíÒ»ÖÖÊÇÓÐsessionµÄÇëÇó£¬Ö»ÐèÑéÖ¤ÇëÇóÖе±Ç°sessionµÄÓÐЧÐÔ£¬¼´¿É¼ÌÐøÇëÇó¡£

µÚ¶þ£¬Óû§µÄ²Ù×÷ÇëÇó¶¼ÔÚºó¶Ëµ¥¸ö½ø³ÌÖÐÖ´ÐÐÍê³É£¬ÍêÈ«ÒÀÀµºó¶Ëµ÷Ó÷½·¨µÄ¿É¿¿ÐÔ¡£Ò»µ©³ö´í£¬Ó¦ÓÃÊÇÎÞ·¨ÔÙ´ÎÖØ¸´ÇëÇó¡£

´«Í³µ¥ÌåÓ¦ÓõķÃÎʰ²È«Éè¼Æ¡ª¡ªÓÅÊÆºÍ×¢Òâµã

С½á£¬´«Í³µ¥ÌåÓ¦ÓÃÓÉÓÚÉè¼ÆÏà¶Ô¼òµ¥µ¥Ò»£¬±©Â¶¸øÍâ½çµÄÈë¿ÚÏà¶Ô½ÏÉÙ£¬´Ó¶ø¾ßÓб»¹¥»÷²¢Ôì³ÉΣº¦ÐԵĿÉÄÜСµÄÓÅÊÆ¡£

Ò²ÕýÊÇÓÉÓÚµ¥ÌåÓ¦Óüòµ¥µ¥Ò»µÄÌØµã£¬ÐèҪעÒâÏà¹ØÎÊÌ⣺

Ó¦Óúó¶Ë±£´æÁËËùÓеÄcredentialµÈÃô¸ÐÐÅÏ¢

Ò»µ©ÈëÇÖÁ˶ÔÕâ¸öÓ¦ÓõÄÇëÇ󣬾ÍÓпÉÄÜÄõ½ËùÓеı£´æÔÚºó¶ËµÄÐÅÏ¢

Ó¦ÓõÄÿ´Î²Ù×÷Ò»°ã¶¼ÐèÒªºÍÊý¾Ý¿â½øÐн»»¥£¬Ôì³ÉÊý¾Ý¿â¸ºÔرä¸ß

¶þ¡¢Î¢·þÎñ¼Ü¹¹Ï£¬·ÃÎʰ²È«Éè¼ÆÔ­Ôò

ÏÈÀ´¿´ÏÂÕâÕŵäÐ͵Ä΢·þÎñÉè¼Æ¼Ü¹¹Í¼£¬ÈçͼËùʾ£¬ÓÐÒÔϼ¸µãÌØÕ÷£º

ÿ¸ö·þÎñÖ»ÓÐȨÏÞÈ¥²Ù×÷×Ô¼º¸ºÔðµÄÄDz¿·Ö¹¦ÄÜ¡£

Óû§ÇëÇóµÄÉí·ÝÑéÖ¤ºÍȨÏÞÅú×¼¶¼ÓɶÀÁ¢µÄgateway·þÎñÀ´±£ÕÏ

¶ÔÍâ·þÎñµÄLB²ãÎÞ·¨Ö±½ÓÓëÌṩҵÎñ·þÎñµÄÓ¦ÓÃ²ã½øÐзÃÎÊ

´ÓÉÏÃæµÄÌØÕ÷·ÖÎöÀ´¿´£¬ÏëÒª¸ø³öÒ»·Ý·ÃÎʰ²È«Éè¼ÆµÄÔ­Ôò˵Ã÷£¬¾ÍÒª¿´¿´Î¢·þÎñ¼Ü¹¹Ï£¬·ÃÎʰ²È«ÓÐÄÄЩʹµã£¬ÒÔÏÂÂÞÁÐÁ˼¸µã£º

µ¥µãµÇ¼£¬¼´ÔÚ΢·þÎñÕâÖÖ¶à¶ÀÁ¢·þÎñµÄ¼Ü¹¹Ï£¬ÊµÏÖÓû§Ö»ÐèÒªµÇ¼һ´Î¾ÍÄÜ·ÃÎÊËùÓÐÏ໥ÐÅÈεÄÓ¦ÓÃϵͳ

΢·þÎñ¼Ü¹¹ÏµÄÓ¦ÓÃÒ»°ã¶¼ÊÇÎÞ״̬µÄ£¬µ¼ÖÂÓû§µÄÇëÇóÿ´Î¶¼ÐèÒª¼øÈ¨£¬¿ÉÄÜÒý·¢Auth·þÎñµÄÐÔÄÜÆ¿¾±

΢·þÎñ¼Ü¹¹Ï£¬Ã¿¸ö×é¼þ¶¼¹ÜÀíן÷×ԵŦÄÜȨÏÞ£¬ÕâÖÖϸÁ£¶ÈµÄ¼øÈ¨»úÖÆÐèÒªÊÂÏÈÁ¼ºÃµÄ¹æ»®

΢·þÎñ¼Ü¹¹Ï£¬ÐèÒª¿¼Âǵ½ÄÇЩ·Çä¯ÀÀÆ÷¶ËµÄ¿Í»§ÇëÇó£¬ÊÇ·ñ¾ßÓÐÁ¼ºÃµÄ¿É²Ù×÷ÐÔ

¸ù¾Ýʵ¼ÊÇé¿ö£¬»¹ÓÐһЩÆäËûÍ´µã£¬ÕâÀï²»ÔÙһһ׸Êö£¬¶øÕâЩʹµã£¬¾ÍÐγÉÁËÎÒÃÇÔÚΪ΢·þÎñ¼Ü¹¹Éè¼Æ·ÃÎʰ²È«µÄÔ­Ôò¡£

Èý¡¢Î¢·þÎñ¼Ü¹¹Ï£¬³£ÓõķÃÎʰ²È«Éè¼Æ·½°¸

HTTP Basic Authentication + Independent Auth DB

HTTP Basic Authentication + Central Auth DB

API Tokens

SAML

ÕâÀïÁгö4ÖÖ£¬Ê×Ïȼòµ¥½éÉÜÏ£¬È»ºóÒ»Ò»ÐðÊö¡£

µÚÒ»ÖÖ£¬Ê¹ÓÃHTTP Basic AuthЭÒ飬¼ÓÉ϶ÀÁ¢µÄAuthÊý¾Ý¿â¡£

µÚ¶þÖÖ£¬Ò²ÊÇʹÓÃHTTP Basic AuthЭÒ飬¸úµÚÒ»ÖÖ²»Í¬µÄÊÇ£¬Ê¹Óü¯ÖÐʽµÄAuthÊý¾Ý¿â

µÚÈýÖÖ£¬API TokensЭÒ飬ÕâÖÖ´ó¼ÒÓ¦¸Ã±È½ÏÊìϤ£¬ºÜ¶à¹«ÓзþÎñ£¨±ÈÈçGithub¡¢TwitterµÈ£©µÄAPI¶¼ÊÇÓÃÕâÖÖ·½Ê½¡£

µÚËÄÖÖ£¬SAML£¬¼´Security Assertion Markup Language£¬·­Òë¹ýÀ´£¬ÊÇ¡º°²È«ÉùÃ÷±ê¼ÇÓïÑÔ¡»£¬ËüÊÇ»ùÓÚXMLµÄÒ»ÖÖЭÒ飬ÆóÒµÄÚʹÓõý϶ࡣ

ÏÂÃæÒ»Ò»×ö½éÉÜ¡£

΢·þÎñ³£Ó÷ÃÎʰ²È«Éè¼Æ·½°¸¡ª¡ªBasic Auth + Independent Auth DB

µÚÒ»ÖÖ£¬ÈçÉÏʾÒâͼËùʾ£¬Ê¹ÓÃBasic AuthЭÒ飬ÅäºÏÿ¸ö·þÎñ×Ô¼º¶¼ÓµÓд洢CredentialÃô¸ÐÊý¾ÝµÄÊý¾Ý¿â£¨»òÕ߯äËû³Ö¾Ã»¯²Ö¿â£©¡£

¼òµ¥½éÉÜÏÂBasic AuthЭÒ飬ËüÊÇÔÚÓû§µÄÇëÇóÖÐÌí¼ÓÒ»¸öAuthorizationÏûϢͷ£¬Õâ¸öÏûϢͷµÄÖµÊÇÒ»¸ö¹Ì¶¨¸ñʽ£º

Basic base64encode(username+¡°:¡±+password)

ÍêÕûµÄÏûϢͷÁÐ×ÓΪ£º

Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==

Basic AuthЭÒé»ù±¾Éϱ»ËùÓÐÁ÷ÐеÄÍøÒ³ä¯ÀÀÆ÷¶¼Ö§³Ö¡£

ÕâÖÖ·½°¸µÄÌØµã£º

ÿ¸öÌṩ¹¦ÄܵķþÎñ¶¼ÓµÓÐ×Ô¼º¶ÀÁ¢µÄ¼øÈ¨ºÍÊÚȨ»úÖÆ

ÿ¸öÌṩ¹¦ÄܵķþÎñ¶¼ÓµÓÐ×Ô¼º¶ÀÁ¢µÄÊý¾Ý¿â£¬À´±£´æÃô¸ÐÐÅÏ¢

ÿ´ÎÓû§ÇëÇó¶¼ÐèҪЯ´øÓû§µÄcredentialÀ´Íê³É²Ù×÷

С½áÏÂʹÓÃÕâÖÖ·½°¸µÄºÃ´¦£º

΢·þÎñµÄÓ¦ÓÿÉÒÔʵÏÖ100%ÎÞ״̬»¯

»ùÓÚBasic Auth¿ª·¢¼òµ¥

ͬʱ£¬Ð¡½áÏÂʹÓÃÕâÖÖ·½°¸ÐèҪעÒâµÄµØ·½£º

ÓÉÓÚÿ¸ö·þÎñ¶¼ÓÐ×Ô¼º´æ´¢credentialµÄ»úÖÆ£¬ÐèÒªÊÂÏÈΪÿ¸ö·þÎñÉè¼ÆºÃÈçºÎ´æ´¢ºÍ²éÕÒÓû§µÄCredential

ÓÉÓÚÿ´ÎÓû§ÇëÇó¶¼»áЯ´øÓû§µÄCredential£¬ÐèÒªÊÂÏÈÉè¼ÆºÃÈçºÎ¹ÜÀí¼øÈ¨»úÖÆ

΢·þÎñ³£Ó÷ÃÎʰ²È«Éè¼Æ·½°¸¡ª¡ªBasic Auth + Central Auth DB

µÚ¶þÖÖ£¬ÈçÉÏʾÒâͼËùʾ£¬Ê¹ÓÃBasic AuthЭÒ飬ÓëµÚÒ»ÖÖ·½°¸Ïà±È£¬Ã¿¸ö·þÎñ¹²ÓÃÓÐͬһ¸öAuth DB¡£

µÚ¶þÖÖ·½°¸µÄÌØµãºÍµÚÒ»ÖÖºÜÏàËÆ£º

ÿ¸öÌṩ¹¦ÄܵķþÎñ¶¼ÓµÓÐ×Ô¼º¶ÀÁ¢µÄ¼øÈ¨ºÍÊÚȨ»úÖÆ

ÿ¸öÌṩ¹¦ÄܵķþÎñ¹²ÓÃͬһ¸öDB£¬À´±£´æCredentialµÈÃô¸ÐÐÅÏ¢

ÿ´ÎÓû§ÇëÇó¶¼ÐèҪЯ´øÓû§µÄcredentialÀ´Íê³É²Ù×÷

С½áÏÂʹÓõڶþÖÖ·½°¸µÄºÃ´¦£º

³ýÁËÓµÓеÚÒ»ÖÖ·½°¸ÏàËÆµÄºÃ´¦Í⣬ÓÉÓÚ¹²ÓÃÁËͬһ¸ö³Ö¾Ã»¯²Ö¿âÀ´¹ÜÀíÓû§ÐÅÏ¢£¬¼ò»¯ÁËÔ­À´¶ÀÁ¢¹ÜÀíµÄ»úÖÆ

ͬʱ£¬Ð¡½áÏÂʹÓÃÕâÖÖ·½°¸ÐèҪעÒâµÄµØ·½£º

ÖÐÐÄ»¯Auth DB»á±»Ã¿´ÎÓû§ÇëÇóÀ´·ÃÎÊÁ¬½Ó£¬¿ÉÄÜÒý·¢AuthDBÐÔÄÜÆ¿¾±

ÐèÒªÔÚÿ¸ö·þÎñÖÐʵÏÖ¶Ô¹²ÓÐAuth DB²éÕÒÓû§ÐÅÏ¢µÄÂß¼­

΢·þÎñ³£Ó÷ÃÎʰ²È«Éè¼Æ·½°¸¡ª¡ªAPI Tokens

µÚÈýÖÖ£¬ÈçÉÏʾÒâͼËùʾ£¬Ê¹ÓÃToken BasedЭÒéÀ´¶ÔÓû§ÇëÇó½øÐвÙ×÷¼øÈ¨¡£

¼òµ¥½éÉÜÏÂ×î»ù±¾µÄToken BasedµÄ½»»¥·½Ê½£º

Óû§Ê¹Óðüº¬Óû§ÃûºÍÃÜÂëµÄcredential´Ó¿Í»§¶Ë·¢Æð×ÊÔ´ÇëÇó

ºó¶Ë½ÓÊÜÇëÇó£¬Í¨¹ýÊÚȨÖÐÐÄ£¬Éú²úÓÐЧtoken×Ö·û´®£¬·µ»Ø¸ø¿Í»§¶Ë

¿Í»§¶Ë»ñµÃtokenºó£¬Ôٴη¢³ö×ÊÔ´ÇëÇó

ºó¶Ë½ÓÊÜ´øtokenµÄÇëÇó£¬Í¨¹ýÊÚȨÖÐÐÄ£¬»ñÈ¡Ïà¹Ø×ÊÔ´£¬·µ»Ø¸ø¿Í»§¶Ë

Òµ½ç³£ÓõÄOAuth¾ÍÊÇ»ùÓÚToken BasedÕâÌ×Âß¼­£¬ÊµÏֵĻ¥ÁªÍø¼¶µÄ¼øÈ¨»úÖÆ¡£

µÚÈýÖÖ·½°¸µÄÌØµãÃ÷ÏÔ£º

ʹÓÃtokenÀ´½øÐмøÈ¨£¬Ìæ»»Óû§±¾ÉíµÄÓû§ÃûºÍÃÜÂ룬Ìá¸ßÁ˽»»¥°²È«ÐÔ

ÿ´ÎÓû§ÇëÇóÐèҪЯ´øÓÐЧtoken£¬ÓëAuth·þÎñ½øÐн»»¥ÑéÖ¤

С½áÏÂʹÓõÚÈýÖÖ·½°¸µÄºÃ´¦£º

ÓÉÓÚʹÓÃÁËtokenÀ´¼øÈ¨£¬ÒµÎñ·þÎñ²»»á¿´µ½Óû§µÄÃô¸ÐÐÅÏ¢

ͬʱ£¬Ð¡½áÏÂʹÓÃÕâÖÖ·½°¸ÐèҪעÒâµÄµØ·½£º

Auth·þÎñ¿ÉÄÜÐèÒª´¦Àí´óÁ¿µÄÉú²útokenµÄ²Ù×÷

΢·þÎñ³£Ó÷ÃÎʰ²È«Éè¼Æ·½°¸¡ª¡ªSAML

µÚËÄÖÖ£¬ÈçÉÏʾÒâͼËùʾ£¬Ê¹ÓÃSAMLЭÒéÀ´¶ÔÓû§ÇëÇó½øÐвÙ×÷¼øÈ¨¡£ËüÊÇÒ»¸ö»ùÓÚXMLµÄ±ê×¼£¬ÓÃÓÚÔÚ²»Í¬µÄ°²È«Óò(security domain)Ö®¼ä½»»»ÈÏÖ¤ºÍÊÚȨÊý¾Ý¡£ÔÚSAML±ê×¼¶¨ÒåÁËÉí·ÝÌṩÕß(identity provider)ºÍ·þÎñÌṩÕß(service provider)£¬ÕâÁ½Õß¹¹³ÉÁËÇ°ÃæËù˵µÄ²»Í¬µÄ°²È«Óò¡£

ÒÔÉÏͼGoogleÌṩµÄApps SSOµÄ»úÖÆ£¬¼òµ¥½éÉÜÏÂSAML¼øÈ¨µÄ½»»¥·½Ê½£º

Óû§ÇëÇó·ÃÎÊ×Ô½¨µÄgoogle application

µ±Ç°application Éú³ÉÒ»¸ö SAML Éí·ÝÑéÖ¤ÇëÇó¡£SAML ÇëÇ󽫽øÐбàÂ벢ǶÈëµ½SSO ·þÎñµÄÍøÖ·ÖС£

µ±Ç°application½«Öض¨Ïò·¢Ë͵½Óû§µÄä¯ÀÀÆ÷¡£Öض¨ÏòÍøÖ·°üº¬Ó¦ÏòSSO ·þÎñÌá½»µÄ±àÂë SAML Éí·ÝÑéÖ¤ÇëÇó¡£

SSO£¨Í³Ò»ÈÏÖ¤ÖÐÐÄ»ò½ÐIdentity Provider£©½âÂë SAML ÇëÇ󣬲¢ÌáÈ¡µ±Ç°applicationµÄ ACS£¨ÉùÃ÷¿Í»§·þÎñ£©ÍøÖ·ÒÔ¼°Óû§µÄÄ¿±êÍøÖ·£¨RelayState ²ÎÊý£©¡£È»ºó£¬Í³Ò»ÈÏÖ¤ÖÐÐĶÔÓû§½øÐÐÉí·ÝÑéÖ¤¡£

ͳһÈÏÖ¤ÖÐÐÄÉú³ÉÒ»¸ö SAML ÏìÓ¦£¬ÆäÖаüº¬¾­¹ýÑéÖ¤µÄÓû§µÄÓû§Ãû¡£°´ÕÕ SAML 2.0 ¹æ·¶£¬´ËÏìÓ¦½«Ê¹ÓÃͳһÈÏÖ¤ÖÐÐÄµÄ DSA/RSA ¹«Ô¿ºÍ˽Կ½øÐÐÊý×ÖÇ©Ãû¡£

ͳһÈÏÖ¤ÖÐÐÄ¶Ô SAML ÏìÓ¦ºÍ RelayState ²ÎÊý½øÐбàÂ룬²¢½«¸ÃÐÅÏ¢·µ»Øµ½Óû§µÄä¯ÀÀÆ÷¡£Í³Ò»ÈÏÖ¤ÖÐÐÄÌṩÁËÒ»ÖÖ»úÖÆ£¬ÒÔ±ãä¯ÀÀÆ÷¿ÉÒÔ½«¸ÃÐÅϢת·¢µ½µ±Ç°application ACS¡£

µ±Ç°applicationʹÓÃͳһÈÏÖ¤ÖÐÐĵĹ«Ô¿ÑéÖ¤ SAML ÏìÓ¦¡£Èç¹û³É¹¦ÑéÖ¤¸ÃÏìÓ¦£¬ACS Ôò»á½«Óû§Öض¨Ïòµ½Ä¿±êÍøÖ·¡£

Óû§½«Öض¨Ïòµ½Ä¿±êÍøÖ·²¢µÇ¼µ½µ±Ç°application¡£

ĿǰSAMLÔÚÒµ½çÒ²ÓÐÏ൱µÄʹÓöȣ¬°üÀ¨IBM WeblogicµÈ²úÆ·¡£

µÚËÄÖÖ·½°¸µÄÌØµãÓУº

ÓÉIdentity ProviderÌṩ¿ÉÐŵÄÇ©ÃûÉùÃ÷

·þÎñµÄ·ÃÎʰ²È«ÓÉ¿ÉÐŵÄIdentity ProviderÌṩ

С½áÏÂʹÓõÚËÄÖÖ·½°¸µÄºÃ´¦£º±ê×¼µÄ¿ÉÐÅ·ÃÎÊÄ£ÐÍ

ͬʱ£¬Ð¡½áÏÂʹÓÃÕâÖÖ·½°¸ÐèҪעÒâµÄµØ·½£º

»ùÓÚXMLЭÒ飬´«ÊäÏà¶Ô¸´ÔÓ

¶Ô·Çä¯ÀÀÆ÷¿Í»§¶ËÊÊÅä²»·½±ã

ËÄ¡¢Spring Cloud Security½â¾ö·½°¸

Spring Cloud SecurityÌØµãÓУº

»ùÓÚOAuth2 ºÍOpenIDЭÒéµÄ¿ÉÅäÖõÄSSOµÇ¼»úÖÆ

»ùÓÚtokens±£ÕÏ×ÊÔ´·ÃÎʰ²È«

ÒýÈëUAA¼øÈ¨·þÎñ£¬UAAÊÇÒ»¸öWeb·þÎñ£¬ÓÃÓÚ¹ÜÀíÕË»§¡¢Oauth2¿Í»§¶ËºÍÓû§ÓÃÓÚ¼øÈ¨µÄÎÊÌâÁîÅÆ(Issue Token)¡£UAAʵÏÖÁËOauth2ÊÚȨ¿ò¼ÜºÍ»ùÓÚJWT(JSON web tokens)µÄÎÊÌâÁîÅÆ¡£

ÏÂÃæ¼òµ¥½éÉÜÏÂUAA£¬ÊÂʵÉÏ£¬ËüÊÇÓÉCloudFoundry·¢ÆðµÄ£¬Ò²ÊÇCloudFoundryƽ̨µÄÉí·Ý¹ÜÀí·þÎñ£¨https://docs.cloudfoundry.org...£©¡£

Ö÷Òª¹¦ÄÜÊÇ»ùÓÚOAuth2£¬µ±Óû§·ÃÎʿͻ§¶ËÓ¦ÓÃʱ£¬Éú³É²¢·¢·Åtoken¸øÄ¿±ê¿Í»§¶Ë¡£

UAAÈÏÖ¤·þÎñ°üº¬Èçϼ¸¸ö·½ÃæµÄÄÚÈÝ£º

ÈÏÖ¤¶ÔÏó¡£ÈçÓû§¡¢¿Í»§¶ËÒÔ¼°Ä¿±ê×ÊÔ´·þÎñÆ÷

ÈÏÖ¤ÀàÐÍ¡£Ö÷ÒªÓÐÊÚȨÂëģʽ¡¢ÃÜÂëģʽÒÔ¼°¿Í»§¶Ëģʽ

ÈÏÖ¤·¶Î§£¬¼´ÈÏ֤ȨÏÞ£¬²¢×÷Ϊһ¸öÃüÃûµÄ²ÎÊý¸½¼Óµ½AccessTokenÉÏ¡£

½ÓÏÂÀ´£¬½áºÏʵÀý£¬Ò»ÆðÀ´¿´ÏÂUAAÔÚSpring CloudÖеÄʵ¼ù¡£

ÈçͼËùʾ£¬ÕâÊÇÒ»¸ö¼òµ¥µÄ»ùÓÚSpring Cloud΢·þÎñ¼Ü¹¹µÄÀý×Ó£¬ËüµÄÖ÷Òª×é¼þÓУº

Eureka×é¼þÌṩ·þÎñ·¢ÏÖ¹¦ÄÜ

¶ÀÁ¢µÄConfig×é¼þÌṩÀàËÆÅäÖÃÖÐÐĵķþÎñ£¬³Ö¾Ã»¯²ã¿ÉÒÔÊÇÎļþϵͳ£¬Ò²¿ÉÊÇgit repository

Auth×é¼þÌṩ»ùÓÚUAAµÄ¼øÈ¨·þÎñ

Account×é¼þ±£´æÓû§µÄÒµÎñÐÅÏ¢

ÆäËû×é¼þ²»Ò»Ò»½éÉÜÁË

ÕâÀïÖ÷Òª½²Auth×é¼þºÍAccount×é¼þÊÇÈçºÎ»ùÓÚUAA·þÎñ½øÐÐÈÏÖ¤ºÍÊÚȨ¡£

ͼһΪAuth×é¼þÒµÎñ´úÂëÖж¨ÒåÁ˲»Í¬¿Í»§¶ËµÄÈÏÖ¤ÀàÐͺÍÈÏÖ¤·¶Î§£¬ÆäÖУº

ä¯ÀÀÆ÷¶ËµÄÈÏÖ¤ÀàÐÍÊÇpassword£¬ÈÏÖ¤·¶Î§ÊÇui

account×é¼þ¶ËµÄÈÏÖ¤ÀàÐÍÊÇclient_credentials£¬ÈÏÖ¤·¶Î§ÊÇserver

ͼ¶þΪconfig×é¼þ£¨ÅäÖÃÖÐÐÄ£©¶¨ÒåµÄÇëÇó·ÓɵĹæÔò£¬ÆäÖУº

ʹÓÃ/uaa/**À´×ª·¢»ùÓÚuaaµÄÈÏÖ¤ÇëÇóÖÁauth×é¼þ

ʹÓÃ/accouts/**À´×ª·¢ÇëÇóÖÁaccount×é¼þ£¬²¢±ê¼ÇserviceIdΪaccount-service£¬ÓëͼһÖеÄwithClient¶ÔÓ¦¡£

ͼһΪä¯ÀÀÆ÷´ò¿ªÓ¦ÓÃÈë¿Úºó£¬ÊäÈëÓû§ÃûºÍÃÜÂëºó£¬·¢³öµÄÈÏÖ¤ÇëÇó£º

ÈÏÖ¤urlΪ/uaa/oauth/token£¬ÕâÊÇuaaģʽϱê×¼µÄÇëÇó»ñÈ¡tokenµÄurl

±íµ¥Öаüº¬ÁË×Ö¶Îscope£¨ÈÏÖ¤·¶Î§£©ºÍ×Ö¶Îpassword£¨ÈÏÖ¤ÀàÐÍ£©

ͼ¶þΪͼһ·¢³öÈÏÖ¤ÇëÇóµÄ·µ»Ø½á¹û£º

Access_tokenΪÓÐЧÈÏÖ¤token£¬½«À´±»ÆäËûÇëÇóʹÓÃ

ͼÈýΪ·¢³ö»ñÈ¡µ±Ç°Óû§µÄÐÅÏ¢µÄÇëÇó£º

ÔÚÇëÇóÀïµÄAuthorizationµÄֵΪͼ¶þÖлñµÃµÄaccess_token

ͼһΪAccount×é¼þÔÚConfig×é¼þ£¨ÅäÖÃÖÐÐÄ£©¶¨ÒåµÄOAuth2ЭÒéÏ»ñÈ¡tokenµÄ·½Ê½£¬ÕâÀﶨÒåÁË£º

clientIDºÍclientSecret

accessTokenUrl£¬ÕâÀïÖ¸¶¨ÁËauth×é¼þµÄuaa»ñÈ¡tokenµÄurl

grant-type£¬¼´ÈÏÖ¤ÀàÐÍ£¬ÕâÀïÖ¸¶¨Îªclient_credentials

scope£¬ÕâÀïÖ¸¶¨ÁËserver£¬ËµÃ÷ÊÇÕâ¸öÈÏÖ¤ÇëÇóÖ»ÊÊÓÃÔÚ¸÷΢·þÎñÖ®¼äµÄ·ÃÎÊ¡£

ͼ¶þΪAccout×é¼þÒµÎñ´úÂëÖж¨ÒåÁËÐèҪʹÓÃAuth×é¼þ½øÐÐÊÂÏȼøÈ¨µÄ·½·¨£º

ʹÓÃ@PreAuthorize

annotationÖпÉÒÔÖ¸¶¨ÈÏÖ¤·¶Î§µÄ¾ßÌåÌõ¼þ£¬ÕâÀïÊÇÏÞ¶¨ÁËserver»òÕßÊÇdemoÕË»§£¬²ÅÓÐȨÏÞ·¢ÆðÈÏÖ¤¡£

×îºóС½áÏÂSpring Cloud SecurityµÄÌØµã£º

»ùÓÚUAA£¬Ê¹ÓÃOAuth2ЭÒé¡£²»»á±©Â¶Óû§µÄÃô¸ÐÐÅÏ¢

»ùÓÚÈÏÖ¤ÀàÐͺÍÈÏÖ¤·¶Î§£¬ÊµÏÖϸÁ£¶ÈµÄ¼øÈ¨»úÖÆ

·Çä¯ÀÀÆ÷¿Í»§¶ËÏÂÁ¼ºÃµÄ²Ù×÷ÐÔ

Q&A

ÎÊÌ⣺Basic Auth + Central Auth DBÕâÖÖ·½Ê½ÖУ¬Ã¿¸ö·þÎñÓÐ×Ô¼ºµÄ¼øÈ¨DB£¬Õâ¿éÖ»ÊÇÒ»¸ö»º³åÂð£¿Èç¹ûÖÐ;ͨ¹ý±ðµÄ·½Ê½ÐÞ¸ÄÁËÖÐÐÄDBµÄÊý¾Ý£¬¶ø»º³åÓÖû¹ýÆÚ£¬Õâ¸öʱºòÓÐʲô½â¾ö·½°¸Âð£¿

´ð£º²»ÊÇ»º³å£¬ÕâÀïµÄCentral Auth DBÊÇÖ¸¸÷¸ö΢·þÎñ¹²ÓÃÒ»¸öÊý¾Ý¿â¡£

ÎÊÌ⣺΢·þÎñ¼Ü¹¹ÐèÒª·þÎñ·ÓɺͷþÎñ×¢²áô£¿¸úesbµÄÇø±ðÔÚÄÄÀ

´ð£º·þÎñ·ÓÉ×é¼þºÍ·þÎñ×¢²á×é¼þºÍÊÇÏà¶Ô±ØÒªµÄ£¬ËûÃDZ£Ö¤ÁËÓû§ÇëÇóÄÜ·¢µ½ÕýÈ·µÄ΢·þÎñÖÐÈ¥¡£ESBÆóÒµ·þÎñ×ÜÏßÊÇÏà¶Ô±È½ÏÖØµÄ×é¼þ£¬¶ø²»ÊÇÏñ΢·þÎñ×é¼þÒ»ÑùÖ»¸ºÔ𵥸öÒµÎñ¡£

ÎÊÌâ:ÔÚ΢·þÎñÖУ¬¶ÔÓÚÊý¾ÝȨÏÞµÄÁ£¶È£¬ÊÇ¿ÉÒÔ¼¯ÖÐÔÚÔÚgatewayÖнøÐл¹ÊÇÓÉÿ¸ö΢·þÎñ×Ô¼º¶ÀÁ¢ÅäÖã¿

´ð£ºÍƼöÓÉÄǸöרßºÔØÈ¨ÏÞµÄ΢·þÎñ×é¼þÀ´ÅäÖá£

ÎÊÌ⣺ÄúºÃ£¬ÐÁ¿àÁË£¬ÇëÎÊÏÖÔÚÓÐÀàËÆSAMLЭÒ飬µ«ÊDz»»ùÓÚXML£¬¶øÊÇ»ùÓÚJSON»òÕ߯äËû¼ò»¯¸ñʽµÄЭÒéÂð£¿

´ð£ºÄ¿Ç°¾ÝÎÒËù֪ûÓлùÓÚJSONµÄSAMLЭÒé¡£Óиö½ÐJWT£¨JSON web token£©µÄЭÒ飬ËüÊÇÍêÈ«»ùÓÚJSONµÄ£¬Spring Cloud¼Ü¹¹ÖÐҲʹÓÃÁËJWT¡£

ÎÊÌ⣺¶ÔÓÚÕâ¸ö¼Ü¹¹£¬·þÎñ»®·ÖµÄÁ£¶ÈÓÐûÓÐʲôºÃµÄ½¨Ò飿ÁíÍâµÇ¼ƾ֤±£´æÔÚ¿Í»§¶ËÈçºÎ½â¾ö±¨Îı»À¹½ØµÄ°²È«Â©¶´£¿

´ð£º·þÎñ»®·ÖÐèÒª°´¾ßÌåÒµÎñÀ´Ëµ£¬Ò»°ãÀ´Ëµ£¬Ò»¸öÒµÎñʵÌå×÷Ϊһ¸ö΢·þÎñ¡£Ê¹ÓÃhttps¿ÉÒÔÒ»¶¨³Ì¶ÈÉÏÌá¸ß°²È«ÐÔ¡£

ÎÊÌâ:spring cloud security¿ÉÒÔ½â¾ötokenÖØ·Å¹¥»÷ô£¿

´ð£ºtokenÖØ·Å¹¥»÷²»ÊÇÌØ±ðÁ˽⣬¿ÉÄÜÊÇÊý¾ÝÈõÒ»ÖÂÐÔµ¼Öµģ¬½¨ÒéÉè¼Æ¾¡¿ÉÄ̵ܶĹýÆÚʱ¼ä¡£

ÎÊÌ⣺ÎÒÃǹ«Ë¾ÏÖÔÚÔÚÉè¼ÆDMP£¬´ÓÐÐÒµµÄ×´¿öÀ´¿´£¬²ÉÓÃÁË΢·þÎñ£¬µ«ÊÇÓÐÒ»µã£¬Ê×ÏȶÔÓÚÓ¦Óñ¾Éí±©Â¶³öÀ´µÄ·þÎñ£¬ÊǺÍÓ¦ÓÃÒ»Æð²¿ÊðµÄ£¬Ò²¾ÍÊDz¢·Çµ¥¶ÀµÄ²¿Êð£¬ÄÇôҵÎñ×é¼þ½Ó¿Ú±©Â¶²¿ÊðÊÇ·ñºÏÀíÄØ£¿

´ð£ºÒµÎñ×é¼þµÄ½Ó¿ÚÒ»°ã¿ÉÒÔͨ¹ýÍ³Ò»Íø¹ØÀ´¹ÜÀí¡£Ò²¿ÉÒÔ¶ÔÒµÎñ½Ó¿ÚÏñspring cloudÖÐÉèÖ÷ÃÎÊscopeÏÞÖÆ¡£

ÎÊÌ⣺ËùÓб©Â¶µÄ΢·þÎñÊÇ·ñÐèÒªÒ»¸öͳһµÄ·þÎñ¹Ü¿ØºÍÖÎÀíÆ½Ì¨£¿

´ð£ºÊǵģ¬Ò»°ãÓзþÎñÍø¹ØºÍ·þÎñ·¢ÏÖ×é¼þÀ´¹ÜÀíÓû§ÇëÇó¡£

ÎÊÌ⣺΢·þÎñµÄgatewayÐèҪʵÏֵײã¶à¸öϸÁ£¶ÈµÄAPI×éºÏµÄ³¡¾°£¬ÎÒÃÇÏÖÔÚÒ»²¿·ÖʹÓÃÒì²½£¬µ«ÊÇÓöµ½ÁËû°ì·¨È«ÃæµÄ½âź¡£ÎÒÏëÎÊÎÊ£¬¶ÔÓÚ´Ë£¬Ê¹ÓÃÏìӦʽ£¿»¹ÊÇÒì²½»Øµ÷ʽ£¿ËüÃǵÄÇø±ðµã»áÓÐÄÄÐ©ÄØ£¿

´ð£ºÊ¹ÓÃÄÄÖÖAPI·½°¸£¬ÆäʵҪ¿´ÒµÎñ¡£Èç¹ûºó¶ËÒµÎñÐèҪǿÊý¾ÝÒ»ÖÂÐÔ£¬½¨ÒéʹÓÃÏìӦʽµÄ¡£·´Ö®£¬¿ÉÒÔʹÓÃÒì²½»Øµ÷»òÕßÏûÏ¢¶ÓÁС£

ÎÊÌ⣺uaaºÍnetflix zull¼¯³É ¿ÉÐÐÂð£¿ÊÇ·ñ×ö¹ýÕâ·½ÃæµÄ³¢ÊÔ£¿

´ð£º¿ÉÒÔ¡£Zuul×é¼þÌá¹©Íø¹Ø·þÎñ£¬uaaÊÇ»ùÓÚOAuth2ЭÒ飬ÌṩÊÚȨ·þÎñµÄ¡£Î¢·þÎñ¼Ü¹¹Ï£¬ËûÃÇÊǶÀÁ¢µÄ£¬ÊÇ¿ÉÒÔ×ÔÓÉ×éºÏµÄ¡£¾Ù¸öÀý×Ó£¬¿ÉÒÔÔÚzuul×é¼þµÄÅäÖÃÎļþÖУ¬ÎªÊÚȨ·þÎñ£¨auth-service£©×é¼þµÄÖ¸¶¨Â·ÓÉ±í¡£

   
3698 ´Îä¯ÀÀ       27
Ïà¹ØÎÄÕÂ

ÆóÒµ¼Ü¹¹¡¢TOGAFÓëArchiMate¸ÅÀÀ
¼Ü¹¹Ê¦Ö®Â·-ÈçºÎ×öºÃÒµÎñ½¨Ä££¿
´óÐÍÍøÕ¾µçÉÌÍøÕ¾¼Ü¹¹°¸ÀýºÍ¼¼Êõ¼Ü¹¹µÄʾÀý
ÍêÕûµÄArchimateÊÓµãÖ¸ÄÏ£¨°üÀ¨Ê¾Àý£©
Ïà¹ØÎĵµ

Êý¾ÝÖÐ̨¼¼Êõ¼Ü¹¹·½·¨ÂÛÓëʵ¼ù
ÊÊÓÃArchiMate¡¢EA ºÍ iSpace½øÐÐÆóÒµ¼Ü¹¹½¨Ä£
ZachmanÆóÒµ¼Ü¹¹¿ò¼Ü¼ò½é
ÆóÒµ¼Ü¹¹ÈÃSOAÂ䵨
Ïà¹Ø¿Î³Ì

ÔÆÆ½Ì¨Óë΢·þÎñ¼Ü¹¹Éè¼Æ
ÖÐ̨սÂÔ¡¢ÖÐ̨½¨ÉèÓëÊý×ÖÉÌÒµ
ÒÚ¼¶Óû§¸ß²¢·¢¡¢¸ß¿ÉÓÃϵͳ¼Ü¹¹
¸ß¿ÉÓ÷ֲ¼Ê½¼Ü¹¹Éè¼ÆÓëʵ¼ù