�}�C�N���T�[�r�X�����SSO����������uKeycloak�v�Ƃ��FKeycloak������i1�j

�{�A�ڂł́A�ߔN���ڂ���Ă���F�؃v���g�R���uOpenID Connect�v���T�|�[�g����I�[�v���\�[�X�̃V���O���T�C���I���iSSO�j�\�t�g�E�F�A�uKeycloak�v�̊��p���@��������Ă����܂��B��1��ڂ́AAPI�ɂ�����F�؁^�F�‚̎d�g�݂�Keycloak�̊T�v���Љ�܂��B

» 2017�N08��31�� 05��00�� ���J
[�Ζ؍V�m�C������Г������쏊]
uKeycloakṽCfbNX

�A�ږڎ�

API�ɂ�����F�؁^�F�‚̎d�g��

�@�ߔN�A���Z�◬�ʕ���Œ��ڂ���Ă���uAPI�G�R�m�~�[�v��u�}�C�N���T�[�r�X�A�[�L�e�N�`���v�Ȃǂ̓o��ɂ��A�T�[�r�X�̋@�\���uREST API�v�Ƃ��Ē񋟂��邱�Ƃ�������O�ɂȂ��Ă��Ă��܂��B�����āAREST API�����J���邽�߂ɂ́A�N���A�N�Z�X���Ă����̂����m�F���邽�߂́u�F���iAuthentication�j�v�ƁAAPI�ւ̃A�N�Z�X��N�ɋ��‚���̂��Ƃ����u�F���iAuthorization�j�v�̎d�g�݂��s�Œ��ł��B

�@�������A�����̃T�[�r�X�����ꂼ��•ʂɔF�؁^���‚��s���ƁA���[�U�[���^�p�X���[�h�Ƃ������F�؏���A�N�Z�X����|���V�[�̊Ǘ����ώG�ɂȂ��Ă��܂��܂��B�����ŁA��x�̔F�؂őS�ẴT�[�r�X�𗘗p�ł���悤�ɂ���d�g�݁u�V���O���T�C���I���iSSO�j�v���L�p�ɂȂ��Ă��܂��B

�@����܂ł̔F�؁^�F�‚̃A�[�L�e�N�`���ł́A1�‚̃T�[�r�X�ŔF�؂��s�������ʂ��u�Z�b�V�����v�Ƃ��ĕێ����Ă����A���̃Z�b�V������p���ăA�N�Z�X�𐧌䂷��Ζ�肠��܂���ł����B�Ƃ��낪�A�}�C�N���T�[�r�X�A�[�L�e�N�`���̂悤�ɕ����̃T�[�r�X���������ē��삷��悤�ȃA�[�L�e�N�`���ł́A�T�[�r�X���ƂɔF�؁^�F�‚��s���K�v�����邽�߁A�F�؏���A�N�Z�X����|���V�[�̊Ǘ����ώG�ɂȂ��Ă��܂��܂��B

�@�����ŁA�F�‚ƔF�؂̋@�\��API�T�[�o���番�����A���[�U�[���g�F�؍ς݁h�ł��邱�Ƃ������F�،��ʂ�A�N�Z�X�����Ȃǂ̔F����API�T�[�o�Ԃŋ��L���邱�ƂŁA�F�؏���A�N�Z�X����|���V�[���ꌳ�����A�Ǘ���e�Ղɂ��邱�Ƃ��ł��܂��i�}1�j�B

}1 �}1�@�F�‚ƔF�؂̋@�\��API�T�[�o���番�����A�F����API�T�[�o�Ԃŋ��L���邱�ƂŁA�Ǘ���e�Ղɂ���

�@�����Łu�F����v�����Ƃ肷��ɂ́AAPI�T�[�o�A�G���h���[�U�[�A�F�ƒv���o�C�_�[�̊ԂŎ菇�����߂�K�v������܂��B���̎菇���߂��v���g�R���̍ł��L���Ȃ��̂Ƃ��ẮuOAuth�v������܂��B

�@OAuth��Web�A�v���P�[�V�����ɂ��F�‚��s�����߂̃I�[�v���ȃv���g�R���W���ł���A������Web�T�[�r�X�ŗ��p����Ă��܂��BOAuth�ł́u�F�ƒv���o�C�_�[�v�ƌĂ΂��A�v���P�[�V�������A�F�‚��󂯂�A�v���P�[�V�����ɑ΂��ăA�N�Z�X�g�[�N���𔭍s���܂��i�}2�j�B�A�v���P�[�V�����͂��̃A�N�Z�X�g�[�N����p���邱�ƂŁAAPI�ւ̃A�N�Z�X�����‚���܂��B

}2 �}2�@OAuth�ł́u�F�ƒv���o�C�_�[�v���A�F�‚��󂯂�A�v���P�[�V�����ɃA�N�Z�X�g�[�N���𔭍s����

�@�������AOAuth�ł́A�A�N�Z�X�g�[�N�����N�ɑ΂��Ĕ��s���ꂽ�̂��͎d�l�ɋK�肳��Ă��炸�A����ɂ��g�g�[�N�������iauthorization code interception attack�j�h�ɂ��U�����”\�ɂȂ鑼�A�K�肪�����܂��ł��邱�Ƃ���Z�L�����e�B�ɖ�肪�����Ă��܂��܂��B

�@���̂悤�Ȗ��������OAuth��⊮����V���v���ň��S�ȔF�‚̎d�l�Ƃ��āuOpenID Connect�i�ȉ��AOIDC�j�v�����ڂ���Ă��܂��BOIDC��OAuth�ɂ��F�‚ɉ����A�uID Token�v�Ƃ������؉”\�ȃg�[�N���𗘗p���Ă��܂��BID Token�ɂ́uJSON Web Token�iJWT�j�v�Ƃ���������ϐ��̂���d�g�݂��p�����Ă���A�T�[�r�X�ԂŔF�؍ς݃��[�U�[��g�[�N�����s�ΏۂȂǂƂ������F�������S�ɋ��L�ł���悤�ɂȂ�܂��B

�F�ƒI�[�v���\�[�X�\�t�g�E�F�A�̓���

�@OIDC�ɂ��F�‚𗘗p����API�����J����ꍇ�AID Token�̔��s���s���F�ƒv���o�C�_�[�̍\�z�ƁAAPI�T�[�o�ɂ��ID Token�����؂���@�\�̒lj����K�v�ɂȂ�܂��B�����̋@�\���\�z���邽�߂ɁA����܂ł̓p�b�P�[�W�\�t�g�̗��p���قƂ�ǂł����B�������A�ߔN�ł̓I�[�v���\�[�X�\�t�g�E�F�A�iOSS�j�����p���i�Ɠ������x���ɂȂ��Ă��Ă���A�L�͂ȑI�����ƂȂ��Ă��܂��B�ȉ���OIDC�̔F�ƒv���o�C�_�[�Ƃ��ē��삷����OSS�����̊T�v�������܂��B

OpenAM

�@�uOpenAM�v��Sun Microsystems�́uOpenSSO�v����ՂɊJ�����ꂽ�AJava�x�[�X�̔F�؃\�t�g�E�F�A�ł��B���p���i�Ƃ��ĊJ������Ă������߁A�M�����^���萫�������A�������т��L�x�ł��B

�@�������A2017�N7�����݁A�Â��o�[�W�����̃\�[�X�R�[�h�݂̂����J����Ă��邾���ŁA�R�~���j�e�B�[�x�[�X�̊J���͍s���Ă��܂���B�܂��A�t�H�[�N�ifork�F����j�̓����������AOSS�Ƃ��Ă̍��オ�s�����ȏ󋵂ł��邽�߁A��舵���ɂ͒��ӂ��K�v�ł��傤�B�Ȃ��A���p�łɂ‚��ẮA���݂������̊�Ƃ��p���I�ɊJ���A�񋟂��i��ł��܂��B

Gluu Server

�@�uGluu Server�v�͏��K�̓R�~���j�e�B�[�Ȃ���A�����ȊJ�����i�߂��Ă���\�t�g�E�F�A�ł��B���ɃN���C�A���g�������C�u�������[�����Ă���A���܂��܂Ȍ����t���[�����[�N�Ƀ��C�u������񋟂��Ă��܂��B

Keycloak

�@�uKeycloak�v�͔�r�I�V�����\�t�g�E�F�A�ŁA���݊����ɊJ�����s���Ă���I�[�v���\�[�X�v���W�F�N�g�ł��BOAuth�^OIDC�ɑΉ����A����OIDC�ɂ‚��Ă�OpenID Foundation���s���Ă���Certification Program�ɂ����āA�S�Ẵv���t�@�C���̔F����擾���Ă��܂��B���p�ł�Red Hat�ɂ��L���ł��񋟂���Ă���A�΍��Œ񋟂܂ł��܂ގ�����T�|�[�g������܂��B�R�~���j�e�B�[�̊����x�������A���������L�]��OSS�ł��邽�߁A�{�e�ł͎��Keycloak�̉����i�߂܂��B

Keycloak�̋@�\

�@Keycloak�ihttp://www.keycloak.org/�j�́A�~�h���E�F�A�^�̔F�‹@�\��A�C�f���e�B�e�B�[�iID�j�Ǘ��@�\�������OSS�ł���A1�`2�J����1����x�Ń}�C�i�[�o�[�W�����A�b�v���s���Ă��܂��B2017�N7�����_�̍ŐV�o�[�W�����́u3.2.0.Final�v�ł��B

�@Keycloak���񋟂����ȋ@�\���\1�̒ʂ�ł��B�����̋@�\�́A�N���C�A���g�A�_�v�^�[�A�N���C�A���g�v���L�V�������A�S�ăA�v���P�[�V�����T�[�o��̃A�v���P�[�V�����i�ȉ��AKeycloak�T�[�o�j�Ƃ��Ē񋟂���Ă��܂��B

���� �@�\ �ڍ�
�F�� ���g�ł̔F�� ���[�U�[���F�؂⃏���^�C���p�X���[�h�ȂǁA�����̔F�؂�g�ݍ��킹�邱�Ƃ��ł���
�f�B���N�g���T�[�o�A�g OpenLDAP��Active Directory�Ƃ������f�B���N�g���T�[�r�X�ƘA�g�ł���
�O��IdP�A�g OpenID Connect�ɑΉ�����Identity Provider�iIdP�j�ɐڑ��ł���
�F�� �F�ƒv���o�C�_�[ OAuth��OIDC�Ƃ�������ʓI��API�F�ƒv���g�R���ɑΉ��BWeb�T�[�r�X�x�[�X�̔F�iSAML�j�ɂ��Ή�����
�N���C�A���g�v���L�V ���o�[�X�v���L�V�Ƃ��ē��삵�A�o�b�N�G���h�̃A�v���P�[�V�����ɑ΂���OAuth�^OIDC�ɂ��A�N�Z�X������”\�ɂ���
�N���C�A���g�A�_�v�^�[ �N���C�A���g���A�v���P�[�V�����ł̔F�Ž擾��A�N�Z�X����Ƃ������@�\���A�����̃t���[�����[�N�ɑ΂��郉�C�u�����̌`�Œ񋟂��Ă���
�\1�@Keycloak���񋟂����ȋ@�\

Keycloak�ɂ��F��

�@Keycloak��ID�Ǘ��@�\������Ă���A���[�U�[�F�؂��s�����Ƃ��ł��܂��B���[�U�[�F�؂ɂ́AKeycloak���̂����”F�؋@�\�̑��A�f�B���N�g���T�[�r�X�Ƃ̘A�g��O����Identity Provider�iIdP�j�𗘗p���邱�Ƃ��ł��܂��B

  • ���v�f�F��

�@Keycloak�ł̓��[�U�[�^�p�X���[�h�ɂ��F�؂����łȂ��A�����^�C���p�X���[�h�Ȃǂ�g�ݍ��킹���u���v�f�F�؁v���������邱�Ƃ��ł��܂��B

  • �O��IdP�A�g

�@Google��Facebook�Ƃ�����OIDC��IdP�Ƃ��ċ@�\����T�[�r�X�ƘA�g���邱�ƂŁA�F�؂��O���ɈϏ����邱�Ƃ��ł��܂��B�܂��A�O���T�[�r�X�𗘗p���邾���łȂ��A����Keycloak�T�[�o��OIDC�ɑΉ�����IdP�Ƃ��A�g�ł��܂��B

  • �f�B���N�g���T�[�o�A�g

�@Keycloak��OpenLDAP��Active Directory�Ƃ������f�B���N�g���T�[�r�X�ɐڑ����邱�ƂŁA�����̃��[�U�[����Keycloak�ɓ������邱�Ƃ��ł��܂��B�����̍ۂɂ́AKeycloak���Ǘ����郆�[�U�[�̑����ƁA�f�B���N�g���T�[�r�X�̎��ʖ��̃}�b�s���O��ݒ肷�邱�ƂŁA�����̏���Keycloak�ɓ������A���[�U�[�̔F�؂��O���ɈϏ����邱�Ƃ��”\�ɂȂ�܂��B�W���ł́ALDAP�iLightweight Directory Access Protocol�j�����Kerberos�ɑΉ������f�B���N�g���T�[�r�X�ƘA�g�ł��܂��B

Keycloak�ɂ��F��

�@Keycloak��OAuth��OpenID Connect�Ƃ������A��v��API�F�ƒv���g�R���̃v���o�C�_�[�Ƃ��ċ@�\���A�T�[�h�p�[�e�B�[�A�v���P�[�V�����ɑ΂���A�N�Z�X������s�����Ƃ��ł��܂��BAPI�F�ˆȊO�ɂ��AWeb�T�[�r�X�x�[�X�̔F�ƒv���g�R���iSAML�j�ɂ��Ή����Ă��܂��B

  • �F�ƒv���o�C�_�[

�@Keycloak��OAuth�̔F�ƒT�[�o��AOpenID Connect��IdP�ł���F�ƒv���o�C�_�[�Ƃ��ċ@�\���A�T�[�h�p�[�e�B�[�A�v���P�[�V�����ւ̃A�N�Z�X�g�[�N���̔��s��API�T�[�o�ւ̃A�N�Z�X����Ȃǂ̋@�\��񋟂��܂��B�����̐ݒ��Web GUI��Web API�o�R�ōs�����Ƃ��ł��܂��B

  • �N���C�A���g�v���L�V

�@�N���C�A���g�v���L�V��HTTP�̃��o�[�X�v���L�V�Ƃ��ē��삵�A�N���C�A���g�A�_�v�^�[��K�p�ł��Ȃ��o�b�N�G���h�̃A�v���P�[�V�����ɑ΂���OAuth�^OIDC�ɂ��A�N�Z�X�����񋟂��܂��B

  • �N���C�A���g�A�_�v�^�[

�@Keycloak�ł́A�N���C�A���g�A�_�v�^�[�ƌĂ΂�郉�C�u������񋟂��Ă��܂��B�N���C�A���g�A�_�v�^�[���A�v���P�[�V������T�[�o�ɓK�p���邱�ƂŁAKeycloak��F�ƒT�[�o�AIdP�Ƃ����F������A�N�Z�X����������ł��܂��B

Keycloak�̓���‹�

�@Keycloak�̓���ɂ�512MB�ȏ�̃������ƁA1GB�ȏ�̃f�B�X�N�e�ʂ��K�v�ł��B�܂��A�O��Ƃ��Ĉȉ��̃R���|�[�l���g���K�v�ɂȂ�܂��B

�R���|�[�l���g ����
Java Oracle JDK 8�܂���Open JDK 8
�A�v���P�[�V�����T�[�o JBoss EAP�܂���Wildfly
�f�[�^�x�[�X H2 Database�APostgreSQL�AMySQL�AOracle�Ȃǂ�RDBMS

API���J�ɂ�����Keycloak�̖���

�@Keycloak��������OAuth�^OIDC�̋@�\�𗘗p���邱�ƂŁA�ی삳�ꂽ���\�[�X�����S��API�Ƃ��Č��J�ł���悤�ɂȂ�܂��B�ȍ~�́AOIDC�𗘗p����API�̌��J���������܂��i�}3�j�B�Ȃ��A�����ł�OAuth�Œ�`����Ă���4�‚̃O�����g�^�C�v�̂����A�F�ƒR�[�h�O�����g�iAuthorization Code Flow�j�ɂ��A�N�Z�X�ɂ‚��Đ������܂��B�ڍׂ�RFC 6749���Q�Ƃ��Ă��������B

}3 �}3�@OIDC�𗘗p����API�̌��J��

�@�i1�j���[�U�[��Keycloak�̃��O�C����ʂɃA�N�Z�X���AKeycloak�ɓo�^����Ă��郆�[�U�[�^�p�X���[�h�Ń��O�C������i�������́A�O����LDAP�T�[�o�ƘA�g���Ă̔F�؂��”\�j�B���O�C������������ƁAKeycloak�́u�F�ƒR�[�h�v�Ƃ����l�����[�U�[�ɗ^����B

�@�i2�j���[�U�[�̓T�[�h�p�[�e�B�[�A�v���P�[�V�����ɑ΂��āA�F�ƒR�[�h��t�������A�N�Z�X���s���B

�@�i3�j�T�[�h�p�[�e�B�[�A�v���P�[�V�����́A�F�ƒR�[�h������Keycloak����A�N�Z�X�g�[�N����v������B�F�ƒR�[�h���܂ޗv������������΁AKeycloak�̓A�N�Z�X�g�[�N����ԋp����B

�@�i4�j�T�[�h�p�[�e�B�[�A�v���P�[�V�����́AAPI�T�[�o�ɃA�N�Z�X����ۂɁA�擾�����g�[�N����v���Ɋ܂߂�B

�@�i5�jAPI�T�[�o�ł͑����Ă����A�N�Z�X�g�[�N���̓��e���`�F�b�N���邽�߁AKeycloak�Ɍ����v�����s���B���̌����v���̓N���C�A���g�A�_�v�^�[����������B�A�N�Z�X�g�[�N���̓��e����������΁A�T�[�h�p�[�e�B�[�A�v���P�[�V�����Ƀ��X�|���X���e��ԋp����B

�@�ȏ�̂悤�ɁA���[�U�[�̔F�؏��Ǘ���A�N�Z�X�g�[�N���̊Ǘ��A�A�N�Z�X����Ȃǂ̏����́AKeycloak����уN���C�A���g�A�_�v�^�[�ɈϏ����邱�Ƃ��ł��邽�߁AAPI�T�[�o�͕K�v�ŏ����̐ݒ��OIDC�ɂ��A�N�Z�X����������ł���悤�ɂȂ�܂��B

�@�����Keycloak�̃T���v���A�v���P�[�V�����𗘗p���āAKeycloak�̊ȒP�Ȏg�����̐����ƁAKeycloak�ɂ��API�F�����̓�������؂��܂��B

�M�ҏЉ�

�� �V�m�i�����@�������j

������Г������쏊 OSS�\�����[�V�����Z���^�����B����܂ł̓\�t�g�E�F�A�G���W�j�A�Ƃ��ăX�g���[�W��T�[�o�̊Ǘ��\�t�g�E�F�A�J���ɏ]�����Ă����B���݂́A��ɃA�C�f���e�B�e�B�[�Ǘ�OSS��API�Ǘ�OSS�̌��؁A�����x�����s���Ă���B


Copyright © ITmedia, Inc. All Rights Reserved.

'; this.insertTarget = document.querySelector('#cmsBody .subscription') || document.querySelector('#cmsBody .inner'); }; BodyAdIMSWithCCE.prototype = Object.create(BodyAdContent.prototype); BodyAdIMSWithCCE.prototype.activate = function () { refreshGam('InArtSpecialLink'); } // global reference window.itm = itm; //entry point BodyAdEventBase.polyfill(); const bodyAdManager = BodyAdManager.getInstance(); bodyAdManager.addEventListener(BodyAdManager.EVENTS.READY, function (ev) { bodyAdManager.loadAdvertise(); }); bodyAdManager.init(); })();
�X�|���T�[����̂��m�点PR

���ڂ̃e�[�}

Microsoft  WindowsőO2025
AI for GWjAO
[R[h^m[R[h Zg by IT - ITGWjArWlX̒SŊ􂷂gD
Cloud Native Central by IT - XP[uȔ\͂gD
�V�X�e���J���m�E�n�E �y�����i�r�zPR
���Ȃ��ɂ������߂̋L��PR

RSS�ɂ‚���

�A�C�e�B���f�B�AID�ɂ‚���

���[���}�K�W���o�^

��IT�̃��[���}�K�W���́A �������A���ׂĖ����ł��B���Ѓ��[���}�K�W�������w�ǂ��������B