async def check_permission(self, identity, permission):
        """
        Works like :func:`Security.can`, but when check is failed
        :func:`ForbiddenError` exception is raised.

        :param identity: Claim
        :param permission: Permission
        :return: Checked claim
        :raise: :func:`ForbiddenError`
        """
        await self.check_authorized(identity)
        allowed = await self.can(identity, permission)
        if not allowed:
            raise ForbiddenError()